Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 使用Write-S3Object时如何设置缓存控制?_Powershell_Amazon Web Services_Amazon S3_Aws Powershell - Fatal编程技术网

Powershell 使用Write-S3Object时如何设置缓存控制?

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 它给了我

我正在使用Windows Powershell for AWS,并尝试了以下操作:

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中的权限设置是否正确。非常感谢您的帮助。