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();