开发者社区> 问答> 正文

oss 上传文件返回值的url,怎么返回自定义域名的url?

1.已经在后台设置了自定义域名,与bucket-name也已经绑定了。
2.我使用oss上传文件,返回值中的url是以bucket-name开头的。
问:
怎么设置返回为自定义域名的url?

展开
收起
游客fu5eeyq7bsgem 2019-04-03 10:40:59 11196 0
6 条回答
写回答
取消 提交回答
  • 这个问题确实很奇葩,官网文档居然没有特意提醒一下,在一个隐蔽的角落找到了,如果定义了二级域名,需要明确指定一下才行,找到官网地址:https://help.aliyun.com/zh/oss/developer-reference/initialization-3

    也可以参考我这边的代码片段

    // 创建ClientBuilderConfiguration实例,您可以根据实际情况修改默认参数。
    ClientBuilderConfiguration configuration = new ClientBuilderConfiguration();
    // 设置是否支持CNAME。CNAME用于将自定义域名绑定到目标Bucket。
    configuration.setSupportCname(true);

        // 创建OSSClient实例
        OSS ossClient = new OSSClientBuilder().build(ENDPOINT_DOMAIN, accessKeyId, accessKeySecret, securityToken,configuration);
    
        // 生成带签名的URL
        GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(BUCKET_NAME, objectName, HttpMethod.GET);
        // 设置URL过期时间为1小时
        Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000);
    
        request.setExpiration(expiration);
    
        URL url = ossClient.generatePresignedUrl(request);
    

    System.out.println(url);

    注意,我这里是通过STS获取到临时url

    private static final String BUCKET_NAME = "your-bucket";
    private static final String ENDPOINT_DOMAIN = "test.baidu.com";

    这样才能返回一个url是

    http://test.baidu.com/2023-11-17/demo.doc?Expires=1700235813&OSSAccessKeyId=STS.NUaRPK6v5wwiBj1GuyNRGbCL1&Signature=QZ0.......

    建议官方在绑定二级自定义域名时候就应该把签名的明确指定二级域名说下,费了半下午时间才搞定。

    2023-11-17 23:10:17
    赞同 1 展开评论 打赏
  • 很简单

    在声明new OssClient类时,修改第三个和第四个参数即可

    如下声明即可 new OssClient(key_id,key_secret,自有域名,true)

    注意:第三个参数必须修改为你的自有域名 例如:oss.bd.com 第四个参数意为 是否使用自有域名

    这样,上传成功后就会返回自有域名的文件链接了。

    2023-03-29 19:48:38
    赞同 1 展开评论 打赏
  • 返回的url怎么拿到的

    2020-07-20 17:21:13
    赞同 展开评论 打赏
  • $accessKeyId = " "; $accessKeySecret = " "; $endpoint = " ";

    try { // true为开启CNAME。CNAME是指将自定义域名绑定到存储空间上。 $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, true); } catch (OssException $e) { print $e->getMessage(); }

    2020-06-16 21:26:06
    赞同 展开评论 打赏
  • 楼主 在吗?怎么搞得 我也遇到了

    2020-04-03 16:27:27
    赞同 展开评论 打赏
  • 楼主问题解决了吗,遇到同样的问题

    2019-10-30 13:51:38
    赞同 3 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
域名大数据的应用 立即下载
“域”见更美好的未来——域名筑梦互联网+ 立即下载
“域”感——《域名投资从入门到精通》 立即下载