使用 Laravel 5.0 存储外观将元数据、标头 (过期、缓存控制) 添加到上传到 Amazon S3 的文件
我正在尝试了解如何将元数据或标头(Expires,CacheControl等)添加到使用Laravel 5.0存储外观上传的文件中。我在这里使用页面作为参考。
http://laravel.com/docs/5.0/filesystem
以下代码工作正常:
Storage::disk('s3')->put('/test.txt', 'test');
挖掘后,我还发现有一个“可见性”参数,它将ACL设置为“公共阅读”,因此以下内容也可以正常工作。
Storage::disk('s3')->put('/test.txt', 'test', 'public');
但我希望能够将其他一些值设置为文件的标头。我尝试了以下方法:
Storage::disk('s3')->put('/index4.txt', 'test', 'public', array('Expires'=>'Expires, Fri, 30 Oct 1998 14:19:41 GMT'));
这不起作用,我也试过了:
Storage::disk('s3')->put('/index4.txt', 'test', array('ACL'=>'public-read'));
但这会产生一个错误,其中“可见性”参数无法从字符串转换为数组。我已经检查了AwsS3Adapter的源代码,似乎有选项的代码,但我似乎看不到如何正确传递它们。我认为这需要以下几点:
protected static $metaOptions = [
'CacheControl',
'Expires',
'StorageClass',
'ServerSideEncryption',
'Metadata',
'ACL',
'ContentType',
'ContentDisposition',
'ContentLanguage',
'ContentEncoding',
];
任何关于如何实现这一目标的帮助将不胜感激。