Téléversement de fichier

Contexte

Le téléversement de fichier constitue l'exemple le plus simple. Il est constitué d'un serveur CID utilisé pour téléverser et entreposer des fichiers. C'est ce manifeste qui est utilisé par le plus simple des serveurs CID PHP.

Manifeste

1
<?xml version="1.0" encoding="UTF-8"?>
2
<cid:manifest xmlns:cid="http://www.cid-protocol.org/schema/v1/core">
3
  <cid:process is="http://schema.org/SendAction">
4
    <cid:label xml:lang="en">Files deposit</cid:label>
5
    <cid:label xml:lang="fr">Dépot de fichiers</cid:label>
6
    <cid:doc xml:lang="en">A simple remote repository.</cid:doc>
7
      <cid:meta name="File-name" cardinality="?" is="http://purl.org/dc/elements/1.1/title">
8
        <cid:label xml:lang="fr">Nom du fichier</cid:label>
9
        <cid:label xml:lang="en">File name</cid:label>
10
        <cid:doc xml:lang="en">
11
          The file-name will be used in the public url of the file
12
          Example: http://.../1d57fe87zr45sdz796m/monImage.png
13
        </cid:doc>
14
      </cid:meta>
15
      <cid:meta name="Public-url" is="http://schema.org/URL"/>
16
      <cid:upload url="http://example.com/upload.php" useMetas="File-name" returnMetas="Public-url" required="true"/>
17
  </cid:process>
18
19
  <cid:authentications>
20
    <cid:basicHttp/>
21
  </cid:authentications>
22
    
23
  <cid:transports>
24
    <cid:webTransport>
25
      <cid:webUpload>
26
        <request method="PUT"  properties="header queryString"/>
27
        <request method="POST" properties="header queryString"/>
28
        <request method="POST;multipart/form-data"  properties="header queryString post"/>
29
      </cid:webUpload>
30
    </cid:webTransport>
31
  </cid:transports>
32
</cid:manifest>

Exécution du processus

Étape 1. Le serveur doit exposer le manifeste affiché ci-dessus sur une URL accessible à l'aide d'une simple requête HTTP GET non authentifiée.

Étape 2. Le client doit télécharger et interpréter le manifeste.

Étape 3. Le client exécute les étape définies par le manifeste. Dans le cas présent, il s'agit d'une simple requête HTTP de téléversement. Par exemple, le client peut envoyer le document dans le corps d'une requête HTTP PUT contenant la métadonnée File-name dans l'entête de la requête. Le corps de la réponse du serveur contiendra un objet JSON contenant la métadonnée Public-url.