oss阿里云上传文件设置下载文件名

今天用oss阿里云完成上传文件操作时遇到一个问题,文件上传到阿里云服务器上后会返回一个url路径,但是通过url路径下载得到是md5加密后的文件名

后查阿里云的sdk文档发现可以通过设置请求头的方式来设置下载文件名:

具体代码如下:

看的时候一定要仔细!!!!!!!!!

  1. // endpoint以杭州为例,其它region请按实际情况填写
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. String content = "Hello OSS";
  7. // 创建上传Object的Metadata
  8. ObjectMetadata meta = new ObjectMetadata();
  9. // 设置上传文件长度
  10. meta.setContentLength(content.length());
  11. // 设置上传MD5校验
  12. String md5 = BinaryUtil.toBase64String(BinaryUtil.calculateMd5(content.getBytes()));
  13. meta.setContentMD5(md5);
  14. // 设置上传内容类型
  15. meta.setContentType("text/plain");
==============================================
解决问题的核心:
//获取原文件名
String filename = file.getOriginalName();
//设置文件上传时的请求头信息,这样上传返回文件存储的url路径,我们通过url路径直接下载就可以得到源文件名而不是加密的随机码。
meta.setContentDisposition("attachment;filename=\""+filename+"\"");

==============================================

  1. // 创建OSSClient实例
  2. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  3. // 上传文件
  4. ossClient.putObject("<yourBucketName>", "<yourKey>", new ByteArrayInputStream(content.getBytes()), meta);
  5. // 关闭client
  6. ossClient.shutdown();

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值