Каковы подходящие типы контента для различных типов файлов статического сайта, размещенного на AWS и , как их настроить с помощью boto3?
Я использую метод upload_file :
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('allecijfers.nl')
bucket.upload_file('C:/Hugo/Sites/allecijfers/public/test/index.html', 'test/index.html', ExtraArgs={'ACL': 'public-read', 'ContentType': 'text/html'})
Это хорошо работает для HTML-файлов. Первоначально я исключил ExtraArgs, что приводит к загрузке файла (возможно, потому что тип содержимого является двоичным?). Я нашел эту страницу , в которой указано несколько типов контента, но я не уверен, как ее применить.
например. вероятно, файлы CSS должны быть загружены с помощью ContentType: text / css.
Но как насчет файлов js, index.xml и т. Д.? И как это сделать умным способом? К вашему сведению, это мой текущий скрипт для загрузки из Windows в AWS, для этого требуется string.replace ("\", "/"), который, вероятно, тоже не самый умный?
for root, dirs, files in os.walk(local_root + local_dir):
for filename in files:
# construct the full local path
local_path = os.path.join(root, filename).replace("\\","/")
# construct the full S3 path
relative_path = os.path.relpath(local_path, local_root)
s3_path = os.path.join(relative_path).replace("\\","/")
bucket.upload_file(local_path, s3_path, ExtraArgs={'ACL': 'public-read', 'ContentType': 'text/html'})
Я загрузил свой полный сайт Hugo из того же источника с помощью интерфейса командной строки AWS в ту же корзину S3, и это прекрасно работает без указания типов контента, это также возможно через boto 3?
Большое спасибо заранее за вашу помощь!