Récemment, j’avais présenté le moyen d’utiliser le protocole REST pour effectuer une requête HTTP de type “PUT” en Java. Ceci était valable pour l’ajout d’un fichier vidéo (de type “.wmv”) sur la plateforme Silverlight Streaming.
Je vais ici présenter deux cas relatifs à la suppression et à la copie d’un fichier vidéo présent sur cette plateforme (le code sera ici en C#).
Copie
Dans notre architecture, lorsqu’un utilisateur souhaitera louer une vidéo, il a été décidé qu’une requête de type “COPY” soit effectuée pour copier le FileSet du fichier vidéo. C’est le lien vers cette copie qui sera ensuite expédié vers l’utilisateur.
On démarre ici avec plusieurs variables principales :
- L’objet contenant la requête
- Deux chaînes de caractères contenant respectivement l’emplacement du FileSet et le nom du futur FileSet copié
- Deux chaînes de caractères contenant respectivement l’identifiant et la clé du compte SLS
- Une autre chaîne contenant l’adresse du SLS (https://silverlight.services.live.com)
HttpWebRequest _requete;
string _fileName = “C:/Users/GuillaumeGas/Desktop/essaiVideoNumberOne/”;
string _fileSetName = “copy”;
string _ID, _Key;
string serviceRoot = “https://silverlight.services.live.com/”;
Dans un premier temps, il va falloir effectuer une authentification, ainsi qu’une recherche de l’emplacement du fichier à copier.
if (_fileSetName != “” && _fileName != “”) {
// Récupération du nom du FileSet à copier
FileInfo _fInfo = new FileInfo(_fileName);
string _fileNameOnly = _fInfo.Name;
_requete = (HttpWebRequest)HttpWebRequest.Create(_serviceRoot + _ID + “/” + _fileSetName);
}
// Authentification credentials
_requete.Credentials = new NetworkCredential(_ID, _Key);
// Déclaration de la méthode COPY
_requete.Method = “COPY”;
// Envoi de la réponse
_requete.Headers["Destination"] = _serviceRoot + _ID + “/copy”;
HttpWebResponse _resp = (HttpWebResponse)_requete.GetResponse();
Au final, on a réussi à copier le FileSet. Notons que la copie s’effectue de façon instantanée.
Suppression
Le principe est le même, à la seule différence qu’on effectue une requête de type DELETE.
Ici, imaginons qu’on souhaite supprimer notre copie précédemment créée :
if (_fileSetName != “”) {
_requete = (HttpWebRequest)HttpWebRequest.Create(_serviceRoot + _ID + “/” + _fileSetName);
}
On définit alors la requête DELETE :
// Déclaration de la méthode DELETE
_requete.Method = “DELETE”;
// Envoi de la réponse
HttpWebResponse _resp = (HttpWebResponse)_requete.GetResponse();
La suppression de la copie s’effectue alors instantanément.










