如何解决从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 举报,一经查实,本站将立刻删除。