Java 使用数字海洋空间复制对象

Java 使用数字海洋空间复制对象,java,amazon-s3,digital-ocean,Java,Amazon S3,Digital Ocean,我目前正在AmazonS3SDK中使用DigitalOcean,并且我能够通过编程上传和删除文件。然而,复制对象似乎是一个大问题 首先,我的存储桶列表总是返回0个结果: s3Client.listBuckets() // 0 results 第二,我有一个名为company\uuuu 1/tempom81p2p2epoksju921ntk/CLASSIFICATION/127a58b2\udd14\u4851\u88f2\u99d28f84911.jpeg的对象,它位于一个名为my\u do\

我目前正在AmazonS3SDK中使用DigitalOcean,并且我能够通过编程上传和删除文件。然而,复制对象似乎是一个大问题

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

s3Client.listBuckets() // 0 results
第二,我有一个名为
company\uuuu 1/tempom81p2p2epoksju921ntk/CLASSIFICATION/127a58b2\udd14\u4851\u88f2\u99d28f84911.jpeg的对象,它位于一个名为
my\u do\u space
的空间中。如果我想复制这个对象,在同一个空间中,正确的代码会是什么样子?我尝试了以下方法:

s3Client.copyObject("my_do_space","company__1/tempom81p2epoksju921ntk/CLASSIFICATION/127a58b2_dd14_4851_88f2_99d28f849191.jpeg", "my_do_space", "company__1/somenewthing/CLASSIFICATION/test.jpeg");
digitalocean:
  spaces:
    endpoint: https://my_bucket.sfo2.digitaloceanspaces.com

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

结果是我的证书错了,我使用了以下方法:

s3Client.copyObject("my_do_space","company__1/tempom81p2epoksju921ntk/CLASSIFICATION/127a58b2_dd14_4851_88f2_99d28f849191.jpeg", "my_do_space", "company__1/somenewthing/CLASSIFICATION/test.jpeg");
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));
我能够使用问题中的代码正确地复制它