Поскольку вопрос подразумевает, что я хочу изменить / установить некоторые заголовки HTTP для одного объекта в ведре S3 через CLI. Вот что я пробовал до сих пор:
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
Проблема в том, что aws s3 sync
говорит мне, что не смог найти файл /home/user/somedir/js/jquery-blockui/jquery.blockUI.min.js/
(см. последнюю косую черту - файл действительно существует) в моей файловой системе:
warning: Skipping file
/home/user/somedir/js/jquery-blockui/jquery.blockUI.min.js/.
File does not exist.
Так aws s3 sync
только ожидает, что каталог будет передан в качестве источника? Кто-нибудь знает, как это сделать для одного файла? Я хочу написать сценарий и передать несколько файлов, которые нужно изменить - вот почему я спрашиваю. Спасибо.
aws s3 cp
твой друг :)Это должно работать:
aws s3 cp --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
Обратите внимание, что --delete
не поддерживается aws s3 cp
но это мелочь. Вы всегда можете удалить его локально после загрузки старым добрым /bin/rm
:)
И да, aws s3 sync
работает только рекурсивно между локальными каталогами и папками S3, а не с отдельными файлами.
Надеюсь, это поможет :)