为了避免重名,前端在上传时文件名使用了object_key,并设置headers中的【Content-Type】与【Content-Disposition】来保留原文件名与文件类型,但使用object_key来下载时,只正确还原了【Content-Type】文件类型,而文件名变成了object_key。 下载时代码如下 Oss.signatureUrl(object_key, { response: { ‘content-disposition’: ‘attachment’ } }) 请问有什么方法可以让下载的时候文件保留原文件名?
oss如何在下载时使用原文件名[阿里云oss]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
在阿里云oss下载文件时,可以使用原文件名。您可以在下载链接中添加
response-content-disposition
参数,并将其设置为attachment;filename=
,其中
为您要使用的原文件名。例如,如果您要下载名为“example.txt”的文件,可以使用以下链接:
其中,
为您的oss存储桶名称,
为您的oss存储区域的访问域名。使用上述链接下载文件时,会将文件保存为“example.txt”,并自动使用浏览器的下载功能进行下载。如果您使用的是命令行工具或者其他下载工具,也可以将链接复制到工具中进行下载。
需要注意的是,如果文件名中包含了中文或其他特殊字符,需要对文件名进行URL编码,例如:
建议在使用时先进行测试,确保能够正确下载文件。
oss上的文件是可以直接通过动态创建a标签来下载的,但是下载的文件名是oss给的,在不转成blob类型的前提下更改a.download是无效的
先把文件转成文件流的形式,再通过动态创建a标签,更改a.download属性来更改文件名
使用OSS(阿里云开放云存储)存储文件时,为了保证文件的安全性和唯一性,文件名全部sha1加密过了。但是这样的话,当用户下载文件时,文件名会是一堆加密串,如何才能让用户下载文件时是原名方法有两种:
上传文件至OSS时设置HTTP的Content-Disposition头标志。
获取文件的下载链接(get_site_url)时设置Content-Disposition标志。
如果不同用户下载同一个文件时使用不同的文件名上面的就不适用了,要用下面的方法,
修复阿里云PHP SDK V1.1.5的一个Bug(V2应该没有这个Bug了),sdk.class.php第452行,由get_sign_url时设置Content-Disposition,
OSS生成的文件,例如压缩包,下载的时候希望是个中文的,方便查看。以下方法可以解决。
通过修改META信息来定义下载文件名称参考一下链接:
https://help.aliyun.com/document_detail/84840.html
在阿里云 OSS 中,如果需要在下载时使用原文件名,可以在上传文件到 OSS 后,对文件进行重命名。具体操作如下: