L'API HTTP de You Store Cloud : authentification par jeton, envoi et téléchargement de fichiers par morceaux et synchronisation de dossiers.
Reliez vos systèmes à vos fichiers : lister, envoyer et partager via HTTP.
L'API fait partie de la formule Entreprise. Le jeton appartient au compte qui y souscrit, et c'est ce compte qui répond de ce que fait l'intégration. Après l'achat, le jeton se trouve dans Panneau → API, avec des exemples déjà remplis avec vos identifiants.
Chaque requête transporte le jeton dans l'en-tête Authorization. Une requête sans jeton, ou avec un jeton d'un abonnement expiré, reçoit 401.
Authorization: Bearer <token>
Sur les serveurs où l'en-tête Authorization n'atteint pas PHP — ce qui arrive en CGI et FastCGI sans configuration supplémentaire —, vous pouvez utiliser X-API-Token à la place. Il existe aussi ?token=, prévu pour essayer depuis un navigateur et à ne pas utiliser en production : un jeton dans la barre d'adresse se retrouve dans les journaux du serveur et dans l'en-tête Referer de tout lien sortant.
La réponse est toujours du JSON, erreurs comprises — un client qui reçoit du HTML en cas d'échec n'a aucun moyen d'indiquer à son auteur ce qui a échoué. Une erreur a toujours cette forme :
{
"erro": {
"codigo": "token_invalido",
"mensagem": "Token inválido ou sem subscrição activa."
}
}
L'API voit exactement ce que la personne voit dans le panneau : le titulaire du compte entreprise et les gestionnaires voient les fichiers de toute l'équipe, les autres voient les leurs.
| Requête | Renvoie |
|---|---|
GET /api/v1/ |
La liste des ressources disponibles. |
GET /api/v1/conta |
Le compte, l'entreprise (places achetées et occupées) et le quota — total et utilisé, en fichiers et en octets. |
GET /api/v1/utilizadores |
Les personnes de l'entreprise, avec le rôle de chacune et son nombre de fichiers. |
GET /api/v1/ficheiros |
Les fichiers visibles. Paramètres : pagina, por_pagina (100 maxi) et procurar. |
GET /api/v1/ficheiros/{id} |
Un fichier, avec sa taille sur le disque et un lien de partage prêt à envoyer. |
L'envoi se fait par session, en morceaux, et non en une seule requête. La raison est pratique : un fichier de plusieurs gigaoctets ne tient pas dans une requête — il se heurte aux limites de taille et de durée de PHP et de tout proxy sur le chemin, et lorsqu'il échoue à 90 %, il n'y a rien à récupérer. Par morceaux, chaque requête est petite, et celui qui décroche reprend là où il s'était arrêté.
| Requête | Renvoie |
|---|---|
POST /api/v1/uploads |
Ouvre la session. Champs : nome et tamanho (en octets). Renvoie l'upload_id. |
POST /api/v1/uploads/{id} |
Envoie un morceau, dans le champ pedaco ou dans le corps de la requête. Renvoie le nombre d'octets arrivés. |
POST /api/v1/uploads/{id}/concluir |
Ferme la session, enregistre le fichier et le renvoie avec le lien de partage. |
GET /api/v1/uploads/{id} |
Combien d'octets sont arrivés. C'est par là qu'on reprend un envoi interrompu. |
DELETE /api/v1/uploads/{id} |
Abandonne l'envoi et supprime ce qui avait déjà été transmis. |
Le paramètre offset est facultatif mais recommandé : il indique à quel octet commence le morceau. S'il ne correspond pas à ce que le serveur possède déjà, la requête est refusée avec 409 et la réponse contient la bonne valeur — ce qui permet de reprendre sans envoyer deux fois le même morceau.
Les mêmes règles que pour l'envoi depuis le panneau s'appliquent : le quota est vérifié à l'ouverture de la session (sur la taille annoncée) puis à nouveau à la clôture (sur la taille réelle sur le disque), et les types de fichiers que le serveur pourrait exécuter sont refusés.
Envoyer un fichier par morceaux de 8 Mo :
TOKEN=<token>
BASE=https://www.youstorecloud.com/api/v1/
FICHEIRO=video.mp4
TAMANHO=$(stat -c%s "$FICHEIRO")
# 1. abrir a sessao
UPLOAD=$(curl -s -H "Authorization: Bearer $TOKEN" \
-X POST "$BASE"uploads \
-F "nome=$FICHEIRO" -F "tamanho=$TAMANHO" \
| sed -n 's/.*"upload_id":"\([0-9a-f]*\)".*/\1/p')
# 2. enviar em pedacos de 8 MB, a partir do byte 0
split -b 8M "$FICHEIRO" parte_
OFFSET=0
for PARTE in parte_*; do
curl -s -H "Authorization: Bearer $TOKEN" \
-X POST "$BASE"uploads/"$UPLOAD"?offset=$OFFSET \
-F "pedaco=@$PARTE"
OFFSET=$((OFFSET + $(stat -c%s "$PARTE")))
done
# 3. fechar — devolve o ficheiro e o link de partilha
curl -s -H "Authorization: Bearer $TOKEN" \
-X POST "$BASE"uploads/"$UPLOAD"/concluir
curl -s -H "Authorization: Bearer $TOKEN" "$BASE"uploads/"$UPLOAD"
# {"upload_id":"...","nome":"video.mp4","tamanho":5000000,"recebido":3200000,"falta":1800000}
# continuer à partir de l'octet indiqué dans "recebido"
| Taille maximale de chaque morceau | 64 MB |
| Durée de validité d'une session non terminée | 24 heures |
| Fichiers par page dans la liste | 100 |
| Taille de chaque fichier | Limitée par le quota de votre formule. |