解读
如何使用临时授权的url访问云对象地址,又如何通过该URL下载自定义的文件名。
下面是两个内容点:
1.直接获取临时url,这个跟官方的差不多,基本上照搬即可。
2.获取临时url,并且可以对下载文件重命名。
使用sdk版本
java SDK版本 3.5.0
1.使用临时URL访问OSS,并获取临时URL
官方文档
oss java sdk
举例
直接使用临时URL访问,这里可以参看文档中的java授权访问。写的很详细了。
// objectName: 上传路径 (不能包含Bucket名称)
public String getDownloadUrl(String objectName) {
// 设置签名URL过期时间,单位为毫秒。
Date expiration = new Date(new Date().getTime() + 3600 * 1000);
// 填写Bucket名称,例如examplebucket。
URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration );
return url.toString();
}
2.使用临时URL访问OSS,并对临时URL下载的文件重命名
分析
1.在获取临时的url里边有这么一行代码
ossClient.generatePresignedUrl(bucketName, objectName, expiration );
进入看看
发现里边有三个接口都可以获取URL,看到最后一个public URL generatePresignedUrl(GeneratePresignedUrlRequest request)是不是很熟悉,这里不就是可以创建一个urlRequest。
看看传入的参数GeneratePresignedUrlRequest 是什么:
惊喜的发现这里边这个ResponseHeaderOverrides对象可以覆盖response headers.
进入到这个类里边,找到了这个setContentDisposition()方法,这个正是我需要的。
这下就明了。
我需要new 一个 GeneratePresignedUrlRequest,并将覆盖请求头的属性ResponseHeaderOverrides给set进去。并调用ossClient的generatePresignedUrl(GeneratePresignedUrlRequest)返回url即可文章来源:https://www.toymoban.com/news/detail-701458.html
举例
// objectName: 上传路径 (不能包含Bucket名称)
// fileName :重命名的文件(eg: rename.txt)
protected String getDownloadUrl(String objectName, String fileName) {
// 设置签名URL过期时间,单位为毫秒。
Date expiration = new Date(new Date().getTime() + 3600 * 1000);
// 填写Bucket名称,例如examplebucket。
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, objectName);
//设置过期时间
request.setExpiration(expiration );
//方法一: 直接覆盖请求头
ResponseHeaderOverrides Headers=new ResponseHeaderOverrides();
Headers.setContentDisposition(String.format("attachment;filename=%s", fileName));
request.setResponseHeaders(Headers);
//方法二: 设置setQueryParameter();其实方法一源码也是这样设置的
// Map<String, String> queryParams = new HashMap<>(8);
// queryParams.put("response-content-disposition", String.format("attachment;filename=%s", fileName));
// request.setQueryParameter(queryParams);
URL url = ossClient.generatePresignedUrl(request);
return url.toString();
}
注: 第二种方法相当于里边源码写的,直接设置Parameters
本篇文档到这里就结束了,有兴趣的朋友可以一起交流一下。文章来源地址https://www.toymoban.com/news/detail-701458.html
到了这里,关于阿里云OSS对象存储使用临时URL访问,并对下载文件重命名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!