AmazonS3Client:从s3下载时jar文件损坏 [英] AmazonS3Client: jar file corrupted on download from s3

查看:203
本文介绍了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();

这篇关于AmazonS3Client:从s3下载时jar文件损坏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆