Назад | Перейти на главную страницу

AWS S3: как изменить HTTP-заголовок отдельного объекта в корзине S3 через интерфейс командной строки?

Поскольку вопрос подразумевает, что я хочу изменить / установить некоторые заголовки 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, а не с отдельными файлами.

Надеюсь, это поможет :)