在AWS SDK for PHP v3中,方法putObject可以接收许多参数,例如ContentType
,ContentEncoding
等。
In it's simplest form,我只能使用Bucket
,Key
和SourceFile
来设置对象:
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'SourceFile' => $filepath
));
考虑到我的应用程序要插入照片,他们必须留在S3中,直到我要删除它为止,设置元数据的优缺点是什么,例如ContentType
,ContentEncoding
和其他
只有Bucket
,Key
和SourceFile
只能通过我的目标吗?
答案 0 :(得分:3)
只有Bucket,Key和SourceFile才能实现我的目标,这是最简单的形式吗?
答案是是它将满足您的目的,但如果您使用元数据,那么您可以更好地控制您的对象。
根据有关对象元数据的AWS文档,
有两种元数据:
系统元数据:对象创建日期,上次修改,内容长度等元数据是系统控制的,只有Amazon S3才能修改该值。
用户定义的元数据:发送PUT或POST请求以创建对象时,您可以将可选信息设置/修改为名称 - 值(键 - 值)对将来也可以抓住它们。
用例:
如果您将存储桶配置为网站,有时可能会 想要将页面请求重定向到另一个页面或外部URL。在 在这种情况下,网页是您桶中的对象。亚马逊S3商店 页面重定向值作为您控制其值的系统元数据。 创建对象时,可以配置这些系统的值 元数据项或更新值
有关对象元数据的更多信息,
http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-metadata
答案 1 :(得分:2)
您拥有系统元数据和用户元数据。
您只需坚持使用存储桶和密钥名称即可。 但是,根据您的应用程序逻辑,用户元数据在各种情况下都会派上用场。 例如,您可以添加额外的信息,例如上传文件原始版本的人的用户名。
但要注意这些限制,不要过期。
PUT请求标头的大小限制为8 KB。在PUT请求标头内,用户定义的元数据大小限制为2 KB。用户定义的元数据的大小是通过获取每个键的UTF-8编码中的字节数和值来确定的。