【问题标题】:Amazon S3 check object metadata before deleteAmazon S3 在删除前检查对象元数据
【发布时间】:2012-09-26 21:00:28
【问题描述】:

当我的应用用户将文件上传到 S3 时,我会在对象中添加一个带有用户 ID 的元数据。

例如x-amz-meta-user_id = 9

我允许我的用户在 php 应用程序中删除他们的文件:

$response = $s3->delete_objects ($bucket, array(
            'objects' => $array //objects to be deleted
));

在删除对象之前,是否可以检查 S3 中的用户 ID 元数据是否与我的应用中的用户 ID 匹配?这将增加额外的安全性,不允许用户删除其他用户的文件。

【问题讨论】:

    标签: php api file-upload amazon-s3 amazon-web-services


    【解决方案1】:

    在 PHP SDK 中,使用 AmazonS3::get_object_headers() 方法查找您选择的 x-amz-meta* 标头并将其与当前用户进行比较。

    如果有匹配项,请继续执行删除。

    【讨论】:

    • 谢谢!还有一个get_object_metadata()方法docs.amazonwebservices.com/AWSSDKforPHP/latest/…
    • 这是真的。但是get_object_metadata() 必须进行多次网络调用才能收集其所有数据。我们通过利用批处理请求提高了效率,但代价是get_object_metadata() 本身不能被批处理。 get_object_headers() 是一个单一的网络调用,可以被批处理,并且仍然提供与这个特定问题相关的数据。 :)
    • 对于遇到这种情况的任何人,现在正确的方法似乎是headObjectdocs.aws.amazon.com/aws-sdk-php/latest/…
    猜你喜欢
    • 1970-01-01
    • 2012-09-10
    • 2022-11-05
    • 2015-04-09
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 2014-04-16
    相关资源
    最近更新 更多