我需要将位图上传到Amazon S3。下面是我到目前为止的代码,它是在完成文档和示例代码之后构建的。
public class AmazonS3Test {
private static final String TAG = "MyApp.AmazonS3Stuff";
private static AmazonS3 mS3 = null;
private static final String mS3BucketName = "bucketname";
private static BasicAWSCredentials mCredentials = new BasicAWSCredentials(".....", "....");
private static void uploadImageToAmazonS3(String key, File file) {
PutObjectRequest request = new PutObjectRequest(mS3BucketName, key, file);
try {
PutObjectResult result = getS3Instance().putObject(request);
} catch (AmazonClientException e) {
Log.e(TAG, "Amazon exception uploading the image to Amazon S3 " + key + " " + mS3BucketName, e);
} catch (Exception e) {
Log.e(TAG, "Exception uploading the image to Amazon S3 " + key + " " + mS3BucketName, e);
}
// TODO Handle result
}
private static AmazonS3 getS3Instance() {
if (mS3 == null) {
mS3 = new AmazonS3Client(mCredentials); // <---- Exception here
}
return mS3;
}
}
堆栈追踪:
Caused by: java.lang.NoSuchMethodError: org.apache.commons.httpclient.params.i.a
at com.amazonaws.http.HttpClient.<init>(Unknown Source)
at com.amazonaws.AmazonWebServiceClient.<init>(Unknown Source)
at com.amazonaws.services.s3.AmazonS3Client.<init>(Unknown Source)
at com.amazonaws.services.s3.AmazonS3Client.<init>(Unknown Source)
at com.addapps.taxiapp.utils.Utils.getS3Instance(AmazonS3Test.java)
我不知道该异常是什么意思,或者为什么我无法获得AmazonS3的实例。
我真的很挣S3,所以如果有人能指出我的任何好资源,我真的很感激。
答案 0 :(得分:1)
此异常是由于我没有在项目中拥有所有必需的AWS库。 AWS有许多不同形式的库,虽然不清楚哪些是必需的,但只有在正确的库存在之后它才会起作用。
答案 1 :(得分:0)
在内部,Amazon Web Service Client正在使用Apache commons HttpClient。从堆栈跟踪中,看起来好像存在库冲突。检查您是否在项目的其他位置使用HttpClient。最有可能的是,您使用的是与Amazon Web Service Client不同的版本。