Howto s3cmd

s3cmd est un client en ligne de commande pour Amazon S3. Il est donc utilisable avec les services compatible S3 comme Ceph RGW.

Installation

# apt install s3cmd

Configuration

Configurer le client avec la commande s3cmd --configure. Seule les lignes où une entrée utilisateur est requise sont affichées. Une session complète est accessible ici.

$ s3cmd --configure

Access Key: REDACTED
Secret Key: REDACTED
Default Region [US]: default

S3 Endpoint [s3.amazonaws.com]: s3.example.com

DNS-style bucket+hostname:port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]: s3.example.com

Encryption password: 
Path to GPG program [/usr/bin/gpg]: 

Use HTTPS protocol [Yes]: 

HTTP Proxy server name: 

Test access with supplied credentials? [Y/n] 

Save settings? [y/N] y

Cette commande crée le fichier ~/.s3cfg par défaut. Si on souhaite configurer un autre accès S3, il faut copier le fichier ~/.s3cfg, car il sera réécrit. Il est possible et probablement préférable de spécifier un fichier différent de celui par défaut : s3cmd --config=s3cfg.foo --configure.

Attention La clé d’accès et la clé secrète sont en clair dans le fichier de configuration.

Utilisation

Dans les exemples qui suivant, foo est un bucket.

  • Lister les objets

    $ s3cmd ls s3://foo
    2025-04-15 13:37      2718281  s3://foo/bar
    2025-04-15 03:14      8284590  s3://foo/baz
  • Uploader un fichier

    $ s3cmd put ./qux s3://foo/
    upload: './qux' -> 's3://foo/qux'  [1 of 1]
     12 of 12   100% in    0s   100.00 B/s  done
  • Supprimer un objet

    $ s3cmd rm s3://foo/bar
    delete: 's3://foo/bar'
  • Créer un bucket

    $ s3cmd mb s3://foo
    Bucket 's3://foo/' created
  • Définir une politique pour un bucket

    $ vi ./foo-policy
    $ s3cmd setpolicy ./foo-policy s3://foo