【发布时间】:2020-03-30 19:16:49
【问题描述】:
我一直在使用来自 Amazon 的一些示例代码来获取脚本,以将对象上传到 aws 的 php sdk 版本 3 中的存储桶。我可以让对象上传到存储桶,但我试图在这个 PutObject 方法调用期间向这个新对象添加一个标签。我已经完成了一些我发现的例子,但没有任何东西对我有用。到目前为止,这是我的 php 代码:
$cmd = $s3Client->getCommand('PutObject', [
'Bucket' => $config['s3BucketName'],
'Key' => 'file_upload_direct.mp4',
'Tagging' => 'status=notProcessed',
]);
标签属性不会被应用,并且在发送表单时不会给出任何错误。我已经看到了几种为上传添加标签的方法,但这些方法都不适合我。我试图避免使用 PutObjectTagging 方法,因为如果我能够在 PutObject 方法中定义标记,那似乎是额外的工作。我不确定问题是否试图在 getCommand 中使用 PutObject 方法,但据我所知,您应该能够像这样将普通参数作为数组传递。有没有人能够让这个工作,或者我应该尝试不同的方式来完成这个?
【问题讨论】:
-
感谢@JohnRotenstein 的回复。当我第一次在网上搜索解决方案时,我遇到了这些。不幸的是,这些对我不起作用。我确实注意到我给了我的桶错误的权限来查看 putObject 标记。我使用 s3:putBucketTagging 而不是 s3:putObjectTagging。一旦我进行了更改,它仍然无法正常工作。由于我还在开发和测试,我给了存储桶策略的所有权限,但是我仍然无法在上传时标记对象。
-
您可以暂时授予您的代码
s3:*权限,以确定问题是否与权限有关。这些权限应该授予您的应用,而不是存储桶。 -
直接上传也有类似的问题。一切正常,但标签字段中没有任何内容。我必须给存储桶一个粘贴标签的策略。仍然没有标签,但也没有错误......
标签: php amazon-web-services amazon-s3 aws-php-sdk