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)

此方法在源码中的解释为

image-20210323172424575

  • 生成一个签名的url,使用get请求方式访问
  • 传入的参数:bucket名称、文件名称(带文件夹路径)、过期时间
  • 返回值:URL

Q.E.D.


这个人很懒,什么都没有写