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.

Advertisements