AWS S3 Java SDK未将文件复制到文件夹

hot*_*oup 1 java amazon-s3 amazon-web-services

Java 8在这里。我有一个myapp-bucket具有以下文件夹子结构的S3存储桶():

/artwork
    /upload
    /staging
Run Code Online (Sandbox Code Playgroud)

下面是什么myapp-bucket/artwork文件夹的样子:

在此处输入图片说明

我有将图像文件上传到/upload文件夹的软件,然后正在编写的另一个应用程序可以处理该图像并将其复制到/staging文件夹中。我必须执行此S3复制的代码如下:

CopyObjectRequest copyObjectRequest = new CopyObjectRequest(
  bucketName,
  objectKey,
  destinationBucket,
  destinationKey
);

log.info(
  "copying object from s3://{}/{} to s3://{}/{}",
  bucketName,
  objectKey,
  destinationBucket,
  destinationKey
);

// Constructed via 
AmazonS3 amazonS3 = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1).build();
amazonS3.copyObject(copyObjectRequest);
Run Code Online (Sandbox Code Playgroud)

运行此命令时,我看到以下日志输出:

[main] DEBUG com.me.myapp.ImageProcessor - copying object from s3://myapp-bucket/artwork/upload/rlj_amp244001_270.jpeg to s3://myapp-bucket/artwork/staging
Run Code Online (Sandbox Code Playgroud)

但是myapp-bucket/artwork文件夹的最终状态如下所示:

在此处输入图片说明

因此,看起来它不是复制myapp-bucket/artwork/upload/<theImageFile>myapp-bucket/artwork/staging/目录中,而是直接在其下创建一个新文件/artwork并为其命名staging,并且可能将映像的二进制内容复制到该登台文件中。我要去哪里了?!我只想结束myapp-bucket/artwork/staging/<theImageFile>-预先感谢!

Dmi*_*ich 5

S3没有文件夹/目录-只是平面存储中的糖。所以你destinationKey应该看起来像artwork/staging/rlj_amp244001_270.jpeg