[英]Changing the filename of a file stored on Amazon S3 upon download
因此,我有一个上传服务,许多人将相同的文件上传到我的Amazon S3存储桶。 我更改了应用程序的设计,以便在上传时计算文件的SHA1,并对照上传的文件列表进行检查。
如果存在,我也只需将文件分配给新的上传器。
问题是文件被命名为第一个上载程序。 随后的所有上传者将获得相同的名字。
我可以在HTML5中使用download =“”属性,但在IE中不起作用: http : //caniuse.com/#search=download
这些文件是远程存储的,因此除非我先将其下载到不合逻辑的本地服务器上,否则就无法更改标头。
请指教。
我认为这可能的唯一方法是在将用户重定向到下载之前添加元数据。
您可以在S3中将元数据添加到文件中。 键为“ Content-Disposition”,值为“ attachment”; filename =“〜实际文件名〜”'。 您可以强制名称并触发下载。
这样,您不必将任何文件下载到本地文件系统。
需要注意的是,如果其他人也在毫秒内请求同一文件,则第一个用户可能会获得第二个用户所请求的名称。
使用rename()方法
例:
$file = "boo.png";
$newName = "scary";
$ext = substr( $file, strpos( "." ), strlen( $file ) );
$path = "/images/downloaded/";
rename($path . $file, $path . $newName . $ext);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.