微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从laravel API端点上传时,如何设置系统定义的元数据到Amazon S3存储桶的对象?

如何解决从laravel API端点上传时,如何设置系统定义的元数据到Amazon S3存储桶的对象?

当将单个对象放入存储桶的目录中时,如何在不带前缀“ x-amz-Meta”的元数据中添加Cache-Control键。当从PHP project的API上传到特定目录时,我们想在对象上设置此键端点。

例如我们的存储桶中有2个目录。 1.图片 2.视频

当我们在图像目录中放置任何对象时,我们想在不带前缀“ x-amz-Meta”的元数据中设置“ cache-control”键。 但是,当我们在视频中放置任何对象时,我们不需要元数据中的“缓存控制”键。

我已尝试使用以下代码在元数据中设置Cache-Control标记

$disk = Storage::disk('s3');
 
 $disk->put(
      file.jpg,file_get_contents(file.jpg),[
        'visibility' => 'public','Metadata'   => array(
        'Cache-Control' => 'max-age=2500000'
      )
      ]
    );

这很好用,但是元数据键名就像带有前缀“ x-amz-Meta-cache-control”一样。我们不希望这样的键名。

如果有人有解决方案,请帮助我们。

解决方法

尝试后,我们可以成功解决此问题。首先,我们尝试在元数据数组中设置CacheControl,但它并没有按照我们的要求进行。
然后,在我们尝试将其设置为数组异常(如下所示)后,它就可以正常工作。

    $disk = Storage::disk('s3');

    $disk->put(
      file.jpg,file_get_contents(file.jpg),[
        'CacheControl'  => 'max-age=2500000','visibility' => 'public',]
    );  

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。