华为OBS预签名上传

 

<dependency>
  <groupId>com.huaweicloud</groupId>
  <artifactId>esdk-obs-java</artifactId>
  <version>3.23.9.1</version>
</dependency>
public String getSignedUrl(String cid, JsonObject config) {
    // 本次请求的桶的endpoint
    String endPoint = config.getString("end_point", "https://obs.xxxx.myhuaweicloud.com");

    // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。
    // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
    String ak = config.getString("access_key");
    String sk = config.getString("secret_key");
    String bucketName = config.getString("bucket_name");
    String objectKey = config.getString("object_name");
    // 创建ObsClient实例
    ObsClient obsClient = new ObsClient(ak, sk, endPoint);
    // 替换您的过期时间,单位是秒
    long expireSeconds = 300L;

    // 替换成您对应的操作
    TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.PUT, expireSeconds);

    // 替换为请求本次操作访问的桶名和对象名
    request.setBucketName(bucketName);
    request.setExpires(expireSeconds);
    request.setObjectKey(objectKey);
    request.setMethod(HttpMethodEnum.PUT);
    Map<String,String> head = new HashMap<>();
    head.put("x-obs-acl", "public-read");
    request.setHeaders(head);
    obsClient.setBucketAcl(bucketName, AccessControlList.REST_CANNED_PUBLIC_READ);
    TemporarySignatureResponse response = obsClient.createTemporarySignature(request);

    // 成功返回预签名URL,如下打印URL信息
    System.out.println(response.getSignedUrl());
    return response.getSignedUrl();
  }

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值