Lou’s Lab

Voor ik verga tot stof en as, wil ik weten hoe de wereld was (RvhG)

User Tools

Site Tools


aws:s3cmd

s3cmd

context

dit document beschrijft de werking van s3cmd, een commandline tool om S3 buckets te beheren vanaf Linux.

systeemvereisten

  1. een AWS gebruiker
    1. programmatic access (Access key and Secret key)
    2. toegang tot S3buckets

installatie

  1. meld aan op je linux server en installeer via pip
  2. voer uit
    sudo pip install s3cmd -vv --log /tmp/s3cmd.log 
  3. maak als volgt een configuratie bestand aan:
    s3cmd --configure

    hoofdzakelijk wordt je gevraagd naar Access key en Secret key waarmee je de cmds uitvoert. Bestand wordt bewaard als ~/.s3cfg. Nu worden alle commando's met deze credentials uitgevoerd.

werking

  1. s3cmd heeft een configuratie bestand (.s3cfg) nodig om te kunnen aanmelden bij S3:
     s3cmd --configure 
    1. geef Access Key op van de gebruiker die de verbinding maakt.
    2. geef bijhorende Secret Key op.
    3. kies Default Region
    4. geef een Encryption password op waarmee je de bestanden wilt versleutelen
    5. controleer de instellingen en bewaar.
      Je kan voortaan met die instellingen verbinden. LET OP: bewaar dit bestand met je leven. Alle instellingen staan in plain-text in dat bestand!!!
  2. de commando's lijken een mix van Linux (ls, rm, du, …) en FTP-commands (get, put, del). De meestgebruikte staan in een lijstje hieronder:
commando actie voorbeeld
s3cmd ls geef de (inhoud van) buckets s3cmd ls s3://backup.bucky
s3cmd la geef de inhoud van ALLE buckets s3cmd la
s3cmd put <bestand> <s3bucket> upload een bestand s3cmd put backup.sh s3://backup.bucky
s3cmd get <s3bucket>/<bestand> upload een bestand s3cmd get s3://backup.bucky/backup.sh
s3cmd rm <s3bucket>/<bestand> verwijder een bestand s3cmd rm s3://backup.bucky/backup.sh
s3cmd sync <local dir> <s3bucket> sync een directory met een bucket s3cmd sync /mnt/data/test s3://backup.bucky
s3cmd du <s3bucket> schrijfgebruik van bucket nakijken s3cmd du s3://backup.bucky
s3cmd info <s3bucket> info over een bestand opvragen

!! Uitkijken met sync!!
Elk bestand dat je upload wordt immers aangerekend als een schrijfactie! Een directory met -tig bestanden brengt je al snel bij je Free Tier limiet van 2000 uploads. Maak daarom liever een tar.gz bestand aan dat je dan upload. (zie: backup.sh)

troubleshooting

  • voer dezelfde actie uit in debug
    sudo s3cmd -d get s3://backup.bucky/dokuwiki_17102019_1207.tar.gz 
    DEBUG: ConnMan.get(): creating new connection: https://backup.bucky.s3.amazonaws.com
    DEBUG: Recognized AWS S3 host, disabling initial SSL hostname check
    DEBUG: httplib.HTTPSConnection() has only context
    DEBUG: non-proxied HTTPSConnection(backup.bucky.s3.amazonaws.com)
    DEBUG: checking SSL subjectAltName against amazonaws.com
    DEBUG: format_uri(): /dokuwiki_17102019_1207.tar.gz
    DEBUG: Response: {'status': 400, 'headers': {'x-amz-region': 'eu-west-2', 'x-amz-id-2': 'suoKZmMRAFsgzBNneFoaVlB7lnlzWtKR9FN3GMTk5yxkmZ91NerARxFszn9tOlolBpTCQKW9iaM=', 'server': 'AmazonS3', 'transfer-encoding': 'chunked', 'connection': 'close', 'x-amz-request-id': '3D700501A53F1CC8', 'date': 'Thu, 17 Oct 2019 12:47:53 GMT', 'content-type': 'application/xml'}, 'reason': 'Bad Request'}
    DEBUG: S3Error: 400 (Bad Request)
    DEBUG: HttpHeader: x-amz-region: eu-west-2
    DEBUG: HttpHeader: x-amz-id-2: suoKZmMRAFsgzBNneFoaVlB7lnlzWtKR9FN3GMTk5yxkmZ91NerARxFszn9tOlolBpTCQKW9iaM=
    DEBUG: HttpHeader: server: AmazonS3
    DEBUG: HttpHeader: transfer-encoding: chunked
    DEBUG: HttpHeader: connection: close
    DEBUG: HttpHeader: x-amz-request-id: 3D700501A53F1CC8
    DEBUG: HttpHeader: date: Thu, 17 Oct 2019 12:47:53 GMT
    DEBUG: HttpHeader: content-type: application/xml
    DEBUG: object_get failed for './dokuwiki_17102019_1207.tar.gz', deleting...
    DEBUG: DeUnicodising u'./dokuwiki_17102019_1207.tar.gz' using ANSI_X3.4-1968
    ERROR: S3 error: 400 (Bad Request) 

problemen, problemen

fout bij downloaden (get) van een bestand

fout:ERROR: S3 error: 400 (Bad Request)
oorzaak: probleempje met s3cmd versie 1.16, blijkbaar
oplossing: verwijder s3cmd via apt-get en installeer via pip

meer info

aws/s3cmd.txt · Last modified: 2019/12/12 22:45 by 127.0.0.1