AmazonS3Client:从s3下载时jar文件损坏

问题描述:

我正在尝试使用AmazonS3Client下载jar文件.但是下载后,无法执行获得的jar文件已损坏的情况.

I am trying to download a jar file using AmazonS3Client. But upon download, the jar file obtained is corrupted is not executed.

我正在使用以下程序:

    String existingBucketName = args[0];
    String keyName = "/" + "EMRS3Files-1.0-SNAPSHOT-jar-with-dependencies.jar";

    BasicAWSCredentials awsCreds = new BasicAWSCredentials("access-key", "secret-key");
    AmazonS3 s3Client = new AmazonS3Client(awsCreds);

    GetObjectRequest request = new GetObjectRequest(existingBucketName, keyName);
    S3Object object = s3Client.getObject(request);
    S3ObjectInputStream objectContent = object.getObjectContent();

    IOUtils.copy(objectContent, new FileOutputStream("/tmp/abc.jar"));

在运行/tmp/abc.jar文件时,出现以下错误:

On running the /tmp/abc.jar file, I get the following error:

Error: Invalid or corrupt jarfile abc.jar

以下工作有效:

    GetObjectRequest request = new GetObjectRequest(existingBucketName, keyName);
    S3Object object = s3Client.getObject(request);
    S3ObjectInputStream objectContent = object.getObjectContent();
    FileOutputStream fos = new FileOutputStream("/tmp/abc.jar");

    byte[] buffer = new byte[4096];

    int buf = 0;
    while((buf = objectContent.read(buffer)) > 0)
    {
        fos.write(buffer, 0, buf);
    }
    fos.close();