当前位置: 首页 > 知识库问答 >
问题:

JMeter-如何将S3中的文件从一个桶复制到另一个桶

汪深
2023-03-14

我已经尝试了下面的代码,虽然采样器是传递,但文件是不复制的。然后我试着从本地上传到S3。由于我需要测试15GB以上的大文件,上传到S3需要很多时间。有没有从S3复制到S3的方法。

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CopyObjectRequest;
import java.io.IOException;
public class CopyObjectSingleOperation {
    public static void main(String[] args) throws IOException {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";
        String sourceKey = "*** Source object key *** ";
        String destinationKey = "*** Destination object key ***";
        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(clientRegion)
                    .build();
            // Copy the object into a new object in the same bucket.
            CopyObjectRequest copyObjRequest = new CopyObjectRequest(bucketName, sourceKey, bucketName, destinationKey);
            s3Client.copyObject(copyObjRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process 
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client  
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}

共有1个答案

翟奕
2023-03-14

您可以使用以下选项之一;

>

  • S3批处理操作作业

    AWS CLI AWS s3同步,例如AWS s3同步s3://source-examplebuckets3://destination-examplebucket

  •  类似资料:
    • 我有2个AWS帐户。我试图复制文件从帐户1到帐户2在桶2在美国西部2地区。我有所有必要的IAM政策,相同的凭据适用于两个帐户。我使用python boto3库。 如图所示,复制函数在指向目标帐户2/us-west-2的客户端对象上执行。它是如何获取帐户1/us-east1中的源文件的?我应该提供作为复制函数的输入吗?

    • 我正在尝试使用Node将文件从AWS S3存储桶复制到另一个存储桶。问题是,如果文件名没有空格,例如:“abc.csv”,它就可以正常工作。但如果我要复制到的文件名中有空格,例如:“abc xyz.csv”。它抛出了下面的错误。 “指定的密钥不存在。”“NoSuchKey:指定的密钥不存在。应请求。extractError(d:\Projects\Other\testproject\s3filet

    • 问题:我想从谷歌云存储桶中的文件夹(例如桶1中的文件夹1)复制文件到另一个桶(例如桶2)。我找不到任何谷歌云存储的气流操作员来复制文件。

    • 我使用以下代码将文件从一个桶复制到另一个桶 但是我总是得到“com . Amazon AWS . services . S3 . model . Amazon S3 exception:Access Denied(服务:亚马逊S3;状态代码:403;错误代码:拒绝访问;请求ID: B6466D562B6988E2)“`作为回应,原因可能是什么

    • 是否可以将文件从源AWS S3 bucket发送/同步到位于不同位置的不同AWS帐户上的目标S3 bucket? 我发现了以下内容:https://aws.amazon.com/premiumsupport/knowled-center/copy-s3-objects-account/ 但是如果我理解正确的话,这就是如何从目标帐户同步文件的方法。 有没有别的方法可以做呢?从源帐户访问目标桶(使用源

    • 我试图在Python3中使用boto3将文件从一个S3桶复制到另一个。我看过以下这些, 使用boto3在两个AWS S3存储桶之间移动文件 boto3文档 aws s3 boto3复制() 如何使用boto3将文件或数据写入S3对象 我的代码如下。 据我所知,这正是医生们的建议。我在命令中尝试了使用和不使用arg名称。 和行按预期执行,程序成功完成。但是,不幸的是,该文件没有出现在新位置。看起来,