JAVA使用阿里云OSS系列:生成临时下载链接
1.导入jar包
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
2.代码案例
public class Main {
public static void main(String[] args) throws IOException {
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
String accessKeyId = "你的id";
String accessKeySecret = "你的secret key";
// 填写Bucket名称。
String bucketName = "Bucket名称。";
// 填写Object的完整路径。Object完整路径中不能包含Bucket名称。
//例如likexindianji文件夹下home.mp4文件
String objectName = "likexindianji/home.mp4文件";
// 创建OSSClient实例。
OSS oss = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
//设置过期时间为30秒
long l = System.currentTimeMillis() + 30000;
URL url = oss.generatePresignedUrl(bucketName, objectName, new Date(l));
System.out.println(url);
}
}
3.代码解读
在本案例中核心代码为OSS.generatePresignedUrl(String bucketName, String key, Date expiration)
此方法在源码中的解释为
- 生成一个签名的url,使用get请求方式访问
- 传入的参数:bucket名称、文件名称(带文件夹路径)、过期时间
- 返回值:URL
Q.E.D.