- 【OSS】使用java-sdk上传文件失败,报错Invalidbucketname,bucketname是文件名称
背景:aliyun-sdk-oss V2.8.3
排查过程:
- 使用java sdk报错 invalid bucketname,查看bucketname字段设置为文件名问题。目前java-sdk版本为v2.8.3.需要更新版本。
- 在初始化client时关闭cname conf.setSupportCname(false);升级jar包
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.0.0</version></dependency>
代码调整
//OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);ClientBuilderConfiguration conf = new ClientBuilderConfiguration();conf.setSupportCname(false);OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret,conf);
- 设置并重试后,报错变为:权限拒绝,受acl限制
- 确认bucket acl是私有的,只有部门ak有读写权限
- ram用户需要做ram授权才能确认使用
- 提供ram策略的常用示例作为参考,可以正常读写osss