1,引入依赖
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> </dependency> <!--AliSms--> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> </dependency>
2,代码
/**
* 获取阿里云OSS预签名URL下载
*
* @param ossPath oss存放路径
*/
public String getOssPreSignatureUrl(String ossPath) {
OSS ossClient = null;
try {
CredentialsProvider credentialsProvider = new DefaultCredentialProvider(access_key, secret_key);
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
ossClient = OSSClientBuilder.create().endpoint(endpoint).credentialsProvider(credentialsProvider).clientConfiguration(clientBuilderConfiguration).region(region).build();
// 设置预签名URL过期时间,单位为毫秒。本示例以设置过期时间为1小时为例。
Date expiration = new Date(new Date().getTime() + 3600 * 1000L);
// 生成以GET方法访问的预签名URL。本示例没有额外请求头,其他人可以直接通过浏览器访问相关内容。
return ossClient.generatePresignedUrl(bucket, ossPath, expiration).toString();
} catch (Exception e) {
log.error("阿里云OSS实例获取失败: {}", e.getMessage());
throw new ServiceException("阿里云OSS预签名URL获取失败!");
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}