Como a pergunta implica, quero alterar/definir alguns cabeçalhos HTTP para um único objeto em um bucket do S3 via CLI. Isto é o que eu tentei até agora:
aws s3 sync --delete --acl public-read --cache-control \
max-age=31536000 --expires "Mon, 01 Oct 2035 20:30:00 GMT" \
js/jquery-blockui/jquery.blockUI.min.js \
s3://mybucket/js/jquery-blockui/jquery.blockUI.min.js --dryrun
O problema é que isso aws s3 sync
me diz que ele não conseguiu encontrar o arquivo /home/user/somedir/js/jquery-blockui/jquery.blockUI.min.js/
(veja a última barra - o arquivo existe na verdade) no meu sistema de arquivos:
warning: Skipping file
/home/user/somedir/js/jquery-blockui/jquery.blockUI.min.js/.
File does not exist.
Então aws s3 sync
, espera apenas que um diretório seja passado como fonte? Alguém tem uma idéia, como fazer isso para um único arquivo? Eu quero escrever um script e passar alguns arquivos, que precisam ser alterados - por isso estou perguntando. Obrigado.
aws s3 cp
é seu amigo :)Isso deve funcionar:
Observe que
--delete
não é compatível comaws s3 cp
, mas isso é menor. Você sempre pode excluí-lo localmente após o upload com o bom e velho/bin/rm
:)E sim,
aws s3 sync
só funciona recursivamente entre diretórios locais e pastas do S3, não em arquivos únicos.Espero que ajude :)