Aller au contenu
Ouvrir la console

CLI et fonctionnalités avancées

Le CLI zcp gère le stockage objet de bout en bout. Le cycle de vie de l’instance (création, redimensionnement, suppression, identifiants) et la création/liste des compartiments passent par le plan de contrôle ZSoftly ; tout ce qui concerne le niveau compartiment et objet est effectué directement contre le point de terminaison S3 (https://objects.<région>.zcp.zsoftly.ca) au moyen des clés d’accès que vous enregistrez lors de leur création.

Résultat : le CLI expose l’ensemble des fonctionnalités S3 de la plateforme — y compris de nombreuses capacités non disponibles dans l’interface du portail (règles de cycle de vie, CORS, politiques de compartiment, étiquettes, URL pré-signées, copie/déplacement côté serveur, flux de gestion des versions d’objets et nettoyage des téléversements multiparties).

Installez et configurez d’abord le CLI — voir Installation et Configuration. Le fournisseur infonuagique pour le stockage objet est sélectionné automatiquement ; vous choisissez seulement une région et un projet.

CapacitéPortailCLI zcpAPI / SDK S3
Créer / lister / redimensionner / supprimer une instance✅✅—
Gérer les clés d’accès S3✅✅—
Bascule de mise à l’échelle automatique✅——
Créer / lister / supprimer un compartiment✅✅✅
Téléverser / télécharger / supprimer des objets✅✅✅
Dossiers (préfixes de clé)✅✅✅
Rendre un compartiment public✅✅✅
Gestion des versions : activer / suspendre / état✅✅✅
Verrou d’objet (WORM) à la création du compartiment✅prévu¹✅
Lister / télécharger / supprimer / restaurer des versions—✅✅
URL de téléchargement pré-signée (object url)—✅✅
URL de téléversement pré-signée (object put-url)—✅✅
Copie / déplacement côté serveur—✅✅
Stat d’objet (HEAD : taille, type, ETag, métadonnées)—✅✅
Type de contenu et métadonnées au téléversement—✅✅
Étiquettes de compartiment et d’objet—✅✅
Chiffrement par défaut (SSE-S3)——²—²
Politique de compartiment brute (get/set/delete)—✅✅
Règles de cycle de vie / d’expiration—✅✅
Règles CORS—✅✅
Nettoyage des téléversements multiparties incomplets—✅✅
Vider un compartiment / purger toutes les versions—✅✅

¹ Le verrou d’objet ne peut être activé qu’à la création d’un compartiment. Le portail le prend en charge dès aujourd’hui ; la prise en charge dans le CLI est prévue (voir la note en fin de page). ² Le chiffrement par défaut n’est pas encore pris en charge sur cette plateforme, quelle que soit l’interface. Voir Le chiffrement par défaut n’est pas disponible ci-dessous.

Vous pouvez aussi l’activer directement contre le point de terminaison S3 avec un SDK lors de la création du compartiment.

Tout ce qui est marqué CLI / API S3 seulement est aussi accessible via n’importe quel SDK compatible S3 — voir Utilisation de l’API S3 pour des exemples par langage.

<storage> est l’identifiant (slug) de l’instance de stockage objet et <key> la clé d’un objet. <bucket> désigne le nom du compartiment pour toutes les commandes qui atteignent la passerelle S3, et son slug uniquement pour bucket delete. Affichez les deux avec zcp object-storage bucket list <storage>. La plateforme ajoute un suffixe numérique à la création, donc aucun des deux n’est le nom que vous avez saisi. Voir Utilisation de l’API S3. Ajoutez -o json (ou -o yaml) à n’importe quelle commande pour une sortie lisible par machine, et -y pour ignorer les invites de confirmation.

zcp object-storage list # lister les instances
zcp object-storage get <storage> # détails + point de terminaison S3
zcp object-storage keys list <storage> # métadonnées des clés d'accès
zcp object-storage keys create <storage> # copiez le secret dans les cinq minutes
zcp object-storage keys delete <storage> <key-id> -y # révoquez une clé active non finale
zcp object-storage resize <storage> --size 200
zcp object-storage delete <storage> -y
# Créer — choisissez une région de stockage objet (os-yul / os-yow) et un plan
zcp plan object-storage # lister les plans + tailles + prix
zcp object-storage create \
--name my-store --project default \
--region os-yow --billing-cycle hourly --plan o2100g
Option (create)Description
--nameNom de l’instance (requis)
--regionRégion de stockage objet : os-yul ou os-yow (requis)
--billing-cyclep. ex. hourly, monthly (requis)
--projectIdentifiant de projet (ou ZCP_PROJECT)
--planPlan issu de zcp plan object-storage (la catégorie de stockage en est déduite)
--storage-gbTaille personnalisée en Go (alternative à --plan ; min. 60)
--storage-categoryRemplacer la catégorie de stockage (rarement nécessaire)
zcp object-storage bucket list <storage>
zcp object-storage bucket get <storage> <bucket>
zcp object-storage bucket create <storage> --name my-bucket
zcp object-storage bucket empty <storage> <bucket> -y # supprimer objets + versions
zcp object-storage bucket delete <storage> <bucket> --purge -y # --purge purge d'abord les versions
# Public / privé (applique une politique de compartiment S3)
zcp object-storage bucket set-acl <storage> <bucket> --acl public-read
zcp object-storage bucket set-acl <storage> <bucket> --acl private
# Gestion des versions
zcp object-storage bucket versioning enable <storage> <bucket>
zcp object-storage bucket versioning suspend <storage> <bucket>
zcp object-storage bucket versioning status <storage> <bucket>
# Politique de compartiment S3 brute (accès fin)
zcp object-storage bucket policy get <storage> <bucket> # -o yaml pris en charge
zcp object-storage bucket policy set <storage> <bucket> --file policy.json
zcp object-storage bucket policy delete <storage> <bucket>
# Étiquettes
zcp object-storage bucket tag set <storage> <bucket> --tag env=prod --tag team=data
zcp object-storage bucket tag get <storage> <bucket>
zcp object-storage bucket tag delete <storage> <bucket>
# Chiffrement par défaut (SSE-S3) - « enable » est refusé, voir l'avertissement ci-dessous
zcp object-storage bucket encryption status <storage> <bucket>
zcp object-storage bucket encryption disable <storage> <bucket>
# Cycle de vie (expiration automatique)
zcp object-storage bucket lifecycle expire <storage> <bucket> --days 30 [--prefix logs/]
zcp object-storage bucket lifecycle expire <storage> <bucket> --noncurrent-days 7 --abort-multipart-days 3
zcp object-storage bucket lifecycle get <storage> <bucket> # -o yaml pris en charge
zcp object-storage bucket lifecycle delete <storage> <bucket>
# CORS (applications web)
zcp object-storage bucket cors set <storage> <bucket> --origin '*' --method GET --method PUT --max-age 3600
zcp object-storage bucket cors get <storage> <bucket>
zcp object-storage bucket cors delete <storage> <bucket>
# Téléversements multiparties incomplets (espace occupé par des téléversements échoués)
zcp object-storage bucket uploads list <storage> <bucket>
zcp object-storage bucket uploads abort <storage> <bucket> <key>

Valeurs de set-acl : private, public-read, public-read-write. Le cycle de vie accepte --days (versions courantes), --noncurrent-days (anciennes versions) et --abort-multipart-days ; combinez avec --prefix pour limiter à un préfixe de clé.

zcp object-storage object list <storage> <bucket>
zcp object-storage object stat <storage> <bucket> <key> # taille, type, ETag, métadonnées
zcp object-storage object put <storage> <bucket> ./file.bin --key data/file.bin \
--content-type application/octet-stream --metadata owner=alice
zcp object-storage object download <storage> <bucket> <key> --dest ./file.bin
zcp object-storage object delete <storage> <bucket> <key> -y
# URL partageables (aucun identifiant requis du côté du destinataire)
zcp object-storage object url <storage> <bucket> <key> --expires 24h # lien de téléchargement
zcp object-storage object put-url <storage> <bucket> <key> --expires 30m # lien de téléversement (curl -T)
# Copie / déplacement côté serveur (sans aller-retour télécharger/téléverser)
zcp object-storage object copy <storage> <src-bucket> <src-key> <dst-bucket> <dst-key>
zcp object-storage object move <storage> <src-bucket> <src-key> <dst-bucket> <dst-key>
# Étiquettes
zcp object-storage object tag set <storage> <bucket> <key> --tag kind=report
# Flux de gestion des versions (requiert : bucket versioning enable)
zcp object-storage object versions <storage> <bucket> [--prefix p/] # lister versions + marqueurs de suppression
zcp object-storage object download <storage> <bucket> <key> --version-id <id>
zcp object-storage object delete <storage> <bucket> <key> --version-id <id>
zcp object-storage object restore <storage> <bucket> <key> # restaurer (retirer le dernier marqueur de suppression)
OptionCommandesDescription
--keyputClé de l’objet distant (par défaut le nom du fichier local)
--content-typeputType de contenu (détecté depuis l’extension si omis)
--metadata k=vputMétadonnées utilisateur (x-amz-meta-*), répétable
--destdownloadFichier ou répertoire local
--version-iddownload, delete, statCibler une version d’objet précise
--expiresurl, put-urlDurée de validité du lien (p. ex. 30m, 24h ; max 168h/7 j)
--prefixversionsLimiter à un préfixe de clé

La passerelle de stockage ne dispose pas encore de backend de clés de chiffrement, donc le chiffrement par défaut des compartiments (SSE-S3) ne fonctionne dans aucune interface. L’activer fait échouer tous les téléversements suivants vers ce compartiment avec InvalidArgument jusqu’au retrait du paramètre, ce qui explique le refus pur et simple de zcp :

zcp object-storage bucket encryption enable <storage> <bucket>
Error: bucket encryption enable is not supported on this platform yet: the object storage
gateway has no encryption key backend, and enabling default SSE-S3 makes every upload to the
bucket fail with InvalidArgument until it is disabled again.

L’API S3 accepte PutBucketEncryption sans ce garde-fou. Un SDK ou aws s3api put-bucket-encryption cassera donc le compartiment sans avertissement. Ne l’activez pas. Si un compartiment est déjà touché, inspectez et retirez le paramètre :

zcp object-storage bucket encryption status <storage> <bucket>
zcp object-storage bucket encryption disable <storage> <bucket>

Le chiffrement côté serveur reste indisponible. Chiffrez côté client avant le téléversement. Sauvegarder Vaultwarden vers le stockage objet avec restic détaille cette approche avec restic, qui chiffre et authentifie chaque objet avant qu’il ne quitte la machine.

  • Verrou d’objet (WORM) — activez-le à la création d’un compartiment dans le portail, ou directement contre le point de terminaison S3 avec un SDK. La prise en charge dans le CLI est prévue.
  • Mise à l’échelle automatique de l’instance — utilisez le portail.
  • Chiffrement par défaut (SSE-S3) — bloqué sur toute la plateforme, voir ci-dessus.

Tout le reste indiqué dans le tableau ci-dessus est entièrement pris en charge par zcp aujourd’hui.

Interroger la documentation ZCP

Posez une question et choisissez un assistant. Il s’ouvre dans un nouvel onglet et lit cette page et toute la documentation ZCP, pour répondre à partir de nos docs.

Exemples de questions

Demander avec

Votre question est envoyée à l’assistant choisi, selon ses propres conditions.