我正在尝试使用此接受答案的方法从S3下载jar文件:
https://stackoverflow.com/a/32822091/6532976
但是我收到了这个错误:
Error:(61, 36) java: constructor GetObjectRequest in class com.amazonaws.services.mediastoredata.model.GetObjectRequest cannot be applied to given types; required: no arguments found: java.lang.String,java.lang.String reason: actual and formal argument lists differ in length
我理解GetObjectRequest不需要任何参数,但我发现了一些关于如何使用GetObjectRequest的在线示例: https://www.programcreek.com/java-api-examples/?api=com.amazonaws.services.s3.model.GetObjectRequest明确地将参数传递给GetObjectRequest。
那么,从S3下载JAR文件的正确程序是什么?
编辑:导致错误的代码
AWSCredentials myCredentials = new BasicAWSCredentials(access_key, secret_key);
AmazonS3Client s3Client;
s3Client = new AmazonS3Client(myCredentials);
GetObjectRequest request = new GetObjectRequest(bucketname, jarFilePathInBucket);
S3Object object = s3Client.getObject(request);
S3ObjectInputStream objectContent = object.getObjectContent();
FileOutputStream fos = new FileOutputStream(pathToJarFile);
byte[] buffer = new byte[4096];
int buf = 0;
while((buf = objectContent.read(buffer)) > 0)
{
fos.write(buffer, 0, buf);
}
fos.close();
答案 0 :(得分:0)
您还没有发布您的代码,但实际上没有替代方案。
AWS3 Java客户端库包含名为GetObjectRequest
的 2 类。当你import
上课时,你需要确保选择合适的课程。
com.amazonaws.services.mediastoredata.model.GetObjectRequest
com.amazonaws.services.s3.model.GetObjectRequest
< - 这是正确的另一个也称为GetObjectRequest的类不带构造函数参数。你需要的那个有多个重载的构造函数,包括一个需要2个字符串的重载。
在文件的顶部,您需要有一行
import com.amazonaws.services.s3.model.GetObjectRequest