默认获取URL是 HTTP,我们的需求是需要获取HTTPS地址,当然你可以使用字符串替换操作,将 http 替换成 https,但这并不是最有解决方案。
URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);
最优解决方案是:
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setProtocol(Protocol.HTTPS);
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret, securityToken, clientBuilderConfiguration);
Date expiration = new Date(new Date().getTime() + 3600 * 1000);
URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);
复制
还有一个问题,没有得到最优解,就是返回的域名默认是 bucketName + "." + endpoint。我们希望使用自己的域名和自己的SSL证书。暂时使用字符串替换解决。
System.out.println(url.toString().replace(bucketName + "." + endpoint, "oss.netkiller.cn"));
复制
下面是完整代码:
package cn.netkiller.aliyun;
import java.net.URL;
import java.util.Date;
import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.common.comm.Protocol;
public class App {
public static void main(String[] args) {
System.out.println("Hello World!");
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
String endpoint = "oss-cn-shanghai.aliyuncs.com";
// 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。
String accessKeyId = "DYmJeLTAI5tm1ZaCEB9nUxAP";
String accessKeySecret = "QkXusBiLMoMIsW3JJhG0D5NOFBEh5a";
// 从STS服务获取的安全令牌(SecurityToken)。
String securityToken = "yourSecurityToken";
// 填写Bucket名称,例如examplebucket。
String bucketName = "production";
// 填写Object完整路径,例如exampleobject.txt。Object完整路径中不能包含Bucket名称。
String objectName = "exampleobject.txt";
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setProtocol(Protocol.HTTPS);
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret, securityToken, clientBuilderConfiguration);
// 设置签名URL过期时间为3600秒(1小时)。
Date expiration = new Date(new Date().getTime() + 3600 * 1000);
// 生成以GET方法访问的签名URL,访客可以直接通过浏览器访问相关内容。
URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);
System.out.println(url.toString().replace(bucketName + "." + endpoint, "oss.netkiller.cn"));
// 关闭OSSClient。
ossClient.shutdown();
}
}
复制
文章转载自netkiller,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
PAI Model Gallery 支持云上一键部署 Qwen3 全尺寸模型
阿里云大数据AI技术
442次阅读
2025-04-29 13:25:15
阿里云 Elasticsearch Serverless 检索增强型 8.17 版来袭!
阿里云大数据AI技术
376次阅读
2025-04-18 10:24:15
面向MoE和推理模型时代:阿里云大数据AI产品升级发布
阿里云大数据AI技术
145次阅读
2025-04-14 14:45:10
DistilQwen2.5-DS3-0324发布:知识蒸馏+快思考=更高效解决推理难题
阿里云大数据AI技术
121次阅读
2025-04-23 09:49:15
通过阿里云Milvus与通义千问VL大模型,快速实现多模态搜索
阿里云大数据AI技术
120次阅读
2025-04-24 15:33:11
阿里云 AI 搜索开放平台:RAG智能化工作流助力 AI 搜索
阿里云大数据AI技术
118次阅读
2025-04-23 15:15:31
阿里云 AI 搜索开放平台新功能发布:新增GTE自部署模型
阿里云大数据AI技术
117次阅读
2025-04-23 14:46:51
阿里云 Elasticsearch Serverless 检索增强型8.17版免费邀测!
阿里云大数据AI技术
66次阅读
2025-04-15 13:18:15
阿里云 AI 搜索开放平台新功能发布:大模型联网能力上线
阿里云大数据AI技术
65次阅读
2025-04-16 09:59:20