Powershell 使用Write-S3Object时如何设置缓存控制?
我正在使用Windows Powershell for AWS,并尝试了以下操作:Powershell 使用Write-S3Object时如何设置缓存控制?,powershell,amazon-web-services,amazon-s3,aws-powershell,Powershell,Amazon Web Services,Amazon S3,Aws Powershell,我正在使用Windows Powershell for AWS,并尝试了以下操作: Write-S3Object -BucketName 'user-ab-staging' -KeyPrefix 'content/css' -Folder 'content/css' -SearchPattern '*.css' -Metadata @{"Cache-Control" = "Value"} -CannedACLName PublicRead 它给了我
Write-S3Object
-BucketName 'user-ab-staging'
-KeyPrefix 'content/css'
-Folder 'content/css'
-SearchPattern '*.css'
-Metadata @{"Cache-Control" = "Value"}
-CannedACLName PublicRead
它给了我一个非常奇怪的错误,只尝试加载一个css文件:
Uploaded 1 object(s) to bucket 'user-ab-staging' from 'C:\g\ab-user\WebUserApp\content\css' with keyprefix
'content/css'
Write-S3Object :
At line:1 char:1
+ Write-S3Object `
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Amazon.PowerShe...eS3ObjectCmdlet:WriteS3ObjectCmdlet) [Write-S3Objec
t], InvalidOperationException
+ FullyQualifiedErrorId : Amazon.S3.AmazonS3Exception,Amazon.PowerShell.Cmdlets.S3.WriteS3ObjectCmdlet
当我使用Write-S3Object和AWS的Powershell扩展时,有人能告诉我这有什么问题,以及如何设置对象的缓存数据吗?我在本地和S3上设置了一些测试文件夹,可以准确地复制这个问题 经过一些挖掘/实验。。。它与
CannedACLName
参数相关。删除该参数时,文件上载成功
这说明正确的选项是publicdead
,但正确的选项实际上是publicdead
。在进行更改之后,我能够成功地将所有对象写入指定的文件夹中
更新后的代码如下所示:
Write-S3Object
-BucketName 'user-ab-staging'
-KeyPrefix 'content/css'
-Folder 'content/css'
-SearchPattern '*.css'
-Metadata @{"Cache-Control" = "Value"}
-CannedACLName public-read
如果您将来需要使用任何其他ACL选项,我建议您改为从尝试。我已经测试了其中一些可用的选项,它们都起了作用。请注意,使用Write-S3Object的
-Metadata
参数设置“x-amz-meta-cache-control”元数据属性。如果要设置“缓存控制”(对于S3网站宿主的HTTP响应头),请改用此参数模式:
-HeaderCollection @{"Cache-Control" = "Value"}
首先检查s3 bucket中的权限设置是否正确。非常感谢您的帮助。