[英]AmazonS3Client: jar file corrupted on download from s3
我正在嘗試使用AmazonS3Client
下載jar文件。 但是下載后,無法執行獲得的jar文件已損壞。
我正在使用以下程序:
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
文件時,出現以下錯誤:
Error: Invalid or corrupt jarfile abc.jar
您是否嘗試過手動(使用瀏覽器)下載並運行它?
可能是AmazonS3以某種方式破壞了它,而不是您的程序。
以下工作:
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.