是否有可能在Amazon S3上使用任意命名來定製標題?Amazon S3上的自定義標題
例如,我使用指向Amazon S3的CDN作爲原始服務器,並且爲了啓用CDN上的高級功能,我需要使用自定義標頭「x-something-something」...
我發現可以用「x-amz-meta-(something)」來做到這一點,但是如果沒有amz,那麼更像「x-(something) - (something)」的東西呢?
是否有可能在Amazon S3上使用任意命名來定製標題?Amazon S3上的自定義標題
例如,我使用指向Amazon S3的CDN作爲原始服務器,並且爲了啓用CDN上的高級功能,我需要使用自定義標頭「x-something-something」...
我發現可以用「x-amz-meta-(something)」來做到這一點,但是如果沒有amz,那麼更像「x-(something) - (something)」的東西呢?
我不認爲這是可能與他們的current API。它們涵蓋了緩存和瀏覽器互操作所需的主要標題。
我認爲他們是安全的,只允許x-amz-meta-
前綴自定義標題,可能會保持與用戶選擇的標題在未來更新api時發生衝突。
如果您需要附加到您的對象的自定義屬性,解析出您的客戶端應用程序中的x-amz-meta-
應該是微不足道的。
這個美麗的文章解釋了這一切 https://medium.com/@tom.cook/edge-lambda-cloudfront-custom-headers-3d134a2c18a2
tldr:
您不容只做與S3。您需要通過Lambda @ Edge使用Cloudfront和lambda。這是Lambda和CloudFront之間的整合。它允許您在CloudFront內運行Lambdas。這使您可以在其他事情中更改標題。因此,如果您可以通過CloudFront訪問您的S3,那麼這可能是一個可行的選擇。
我能用s3cmd tool實現這個功能。我寫了同步我使用的AWS客戶端工具--cache-control
參數靜態網站,然後手動重新啓動它,並增加了一些其它的頭幾個特定的文件同步腳本:
CD/appropriatedirectory
#刪除當前網站
AWS S3 RM S3:// yourbucket --recursive --exclude '日誌/ *'#上傳新的網站,緩存標頭設爲1個月的所有文件
AWS S3同步。 s3:// yourbucket --exclude'.idea/*'--exclude'.git/*'--exclude'.gitignore'--cache-control max-age = 2592000#覆蓋緩存頭某些文件
python/pathToS3cmd/s3cmd modify --add-header =「Cache-Control:no-cache,no-store,must-revalidate」s3://yourbucket/somefile.html
python/pathToS3cmd/s3cmd/s3cmd modify --add-header =「Expires:0」s3://yourbucket/somefile.html
python/pathToS3cmd/s3cmd/s3cmd modify --add-header =「Pragma:no-cache」s3:// yourbucket /somefile.html
這有一些無用的日誌,IntelliJ和Git文件。我把它作爲實用同步腳本的一個有希望的例子。 – 2017-09-22 18:38:26
你不能用這種方式添加頭文件來完成什麼? – Kekoa 2012-01-18 21:10:39