【问题标题】:Copy Objects using DigitalOcean Spaces使用 DigitalOcean Spaces 复制对象
【发布时间】:2019-08-31 05:29:51
【问题描述】:

我目前正在使用带有 Amazon S3 开发工具包的 Digital Ocean,并且能够以编程方式上传和删除文件。但是,复制对象似乎是一个大问题。

首先,我的桶列表总是返回 0 个结果:

s3Client.listBuckets() // 0 results

其次,我在名为my_do_space 的空间中有一个名为company__1/tempom81p2epoksju921ntk/CLASSIFICATION/127a58b2_dd14_4851_88f2_99d28f849191.jpeg 的对象。如果我想在同一个空间内复制这个对象,正确的代码会是什么样子?我尝试了以下方法:

s3Client.copyObject("my_do_space","company__1/tempom81p2epoksju921ntk/CLASSIFICATION/127a58b2_dd14_4851_88f2_99d28f849191.jpeg", "my_do_space", "company__1/somenewthing/CLASSIFICATION/test.jpeg");

我也尝试了所有可能的组合,但似乎都不起作用

【问题讨论】:

    标签: java amazon-s3 digital-ocean


    【解决方案1】:

    原来我的凭据有误,我使用的是以下内容:

    digitalocean:
      spaces:
        endpoint: https://my_bucket.sfo2.digitaloceanspaces.com
    

    由于某种原因,我能够从中正确上传/删除文件

    当我将凭据更改为:

    digitalocean:
      spaces:
        endpoint: https://sfo2.digitaloceanspaces.com
    

    他们通过代码指定存储桶:

    s3Client.putObject(new PutObjectRequest("my_bucket", key, fileToUpload)
                .withCannedAcl(CannedAccessControlList.PublicRead));
    

    我能够使用问题中的代码正确复制它

    【讨论】:

      猜你喜欢
      • 2018-05-19
      • 2020-05-19
      • 1970-01-01
      • 2020-08-16
      • 2020-11-28
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 2021-03-31
      相关资源
      最近更新 更多