Измените тип содержимого по умолчанию для нескольких файлов, которые были загружены в корзину AWS S3.

Используя aws-cli, я загрузил 5 ГБ файлов в корзину Amazon S3, которую я сделал статическим веб-сайтом. Некоторые из файлов, на которые ссылается сайт, являются файлами .shtml, но S3 по умолчанию использует тип содержимого метаданных binary/octet-stream, но я хочу, чтобы эти файлы имели тип содержимого метаданных text/html. В противном случае это не работает в браузере.

Есть ли команда aws-cli s3api, которую я могу использовать для изменения типа содержимого для всех файлов с расширением .shtml?


person Albert Still    schedule 30.05.2015    source источник


Ответы (2)


Вы можете установить тип содержимого для определенных типов файлов, как показано ниже.

"aws s3 sync ${BASE_DIR} s3://${BUCKET_NAME} --exclude *.shtml"
"aws s3 sync ${BASE_DIR} s3://${BUCKET_NAME} --exclude '*' --include '*.shtml' --no-guess-mime-type --content-type text/html"
person Eli Web-Dev    schedule 29.12.2015
comment
Почему у вас в первой строке упоминается .svg? - person bart; 11.12.2016
comment
Что означает BASE_DIR? - person bart; 11.12.2016
comment
Обновлено, чтобы иметь отношение к вопросу OP. BASE_DIR будет местоположением вашего файла. - person Eli Web-Dev; 11.08.2017

Чтобы изменить метаданные объекта Amazon S3, скопируйте объект в себя и укажите метаданные.

Из StackOverflow: Как я могу изменить тип содержимого объекта с помощью aws cli?:

$ aws s3api copy-object --bucket archive --content-type "application/rss+xml" \
    --copy-source archive/test/test.html --key test/test.html \
    --metadata-directive "REPLACE"
person John Rotenstein    schedule 01.06.2015