获取文件访问地址(JAVA)

最近更新时间:2023-05-12 15:58:34

获取文件访问地址

1. 如果是公开文件

通过:http://{bucket}.{endpoint}/{key}的方式拼接一个URL即可。比如:http://test-bucket.ks3-cn-beijing.ksyuncs.com/2015/10/19/image.jpg,该URL中的{bucket}是test-bucket,{endpoint}是kssws.ks-cdn.com,{key}是2015/10/19/image.jpg。

2. 如果是私有文件

通过以下代码可以生成一个访问地址。

// yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
String endpoint = "yourEndpoint";
// 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 创建Ks3ClientConfig 实例。
Ks3ClientConfig config = new Ks3ClientConfig();
// 设置域名
config.setEndpoint(endpoint);
// 创建Ks3Client实例
Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
// 生成一个在1000秒后过期的外链
client.generatePresignedUrl(<bucket>,<key>,1000);
// 生成一个1000秒后过期并重写返回的header的外链
ResponseHeaderOverrides overrides = new ResponseHeaderOverrides();
// overrides.setContentType("text/html");
// .......
// 生成指定 bucket 和 key 的外链,有效期1000秒
client.generatePresignedUrl(<bucket>,<key>,1000,overrides);

常见问题:

  • 如果文件不存在,会返回NoSuchKey错误
  • 如果以公开的方式访问私有文件,会返回AccessDined错误
  • 如果私有文件访问地址过期,会返回URLExpired错误
  • 1000秒后过期是参照客户端本地时间的。

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈