Skip to content

Instantly share code, notes, and snippets.

@rhossi
Created July 30, 2015 18:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rhossi/4dbd359f80c96d570026 to your computer and use it in GitHub Desktop.
Save rhossi/4dbd359f80c96d570026 to your computer and use it in GitHub Desktop.
Uploading files to S3 validating ContentMD5 using AWS CLI
# (1) aws s3api put-object é padrão, tem a mesma sintaxe para Mac, Linux e Windows
# (2) openssl está disponível no Mac e no Linux, pode ser instalado no Windows com o cygwin
# (3) openssl dgst -md5 -binary demo-diebold.txt vai gerar o MD5 em binário do arquivo informado (ex: demo-diebold.txt)
# (4) openssl enc -base64 vai converter o valor informado para Base64
# (5) o | (pipe) faz a passagem do output da execução do comando 4 para o comando 5, e gera como ouput final o MD5 em Base64
# (6) a chamada $(openssl dgst -md5 -binary demo-diebold.txt | openssl enc -base64) que passamos para o --content-md5 é para primeiro gerar o hash MD5 em Base64 do arquivo, e então passar o output para o aws s3api put-object ser executado
aws s3api put-object --bucket megasenateste --key demo-diebold.txt --body ./demo-diebold.txt --content-md5 $(openssl dgst -md5 -binary demo-diebold.txt | openssl enc -base64)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment