Android Amazon S3 TransferUtility
Android Amazon S3 TransferUtility
我正在尝试使用以下代码将图像上传到亚马逊 (AWS SDK 2.3.0) s3
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(),
"XXXXXXX",
// Identity Pool ID
Regions.EU_WEST_1 // Region
);
AmazonS3Client s3Client = new AmazonS3Client(credentialsProvider);
TransferUtility transferUtility = new TransferUtility(s3Client, this.
getApplicationContext());
TransferObserver observer = transferUtility.upload("testbucketzzzz", "test.jpg",
file);
每次我尝试上传图片时都会收到以下错误
UploadTask: Failed to upload: 37 due to The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. (Service: Amazon S3; Status Code: 400; Error Code: InvalidRequest; Request ID: 9787E53737D02BA7)
我认为这只会是旧版 AWS SDK 的问题。经过无数小时的修复尝试后,我发现了以下内容 "trick" 但这只会导致我出现另一个错误,根本不需要。
System.setProperty(SDKGlobalConfiguration.ENABLE_S3_SIGV4_SYSTEM_PROPERTY, "true");
您可以使用以下代码片段将图片上传到 Amazon S3
(确保您在 MainThread
中没有这样做):
BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials(
ACCESS_KEY,
SECRET_KEY
);
AmazonS3Client s3Client = new AmazonS3Client(basicAWSCredentials);
s3Client.setEndpoint(ENDPOINT);
s3Client.setRegion(Region.getRegion(Regions.EU_WEST_1));;
PutObjectRequest por = new PutObjectRequest(
"YOUR_BUCKET_NAME", "YOUR_KEY", file);
}
s3Client.putObject(por);
如果您想了解有关为什么您的方法不起作用的更多信息,可以参考 this link
我正在尝试使用以下代码将图像上传到亚马逊 (AWS SDK 2.3.0) s3
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(),
"XXXXXXX",
// Identity Pool ID
Regions.EU_WEST_1 // Region
);
AmazonS3Client s3Client = new AmazonS3Client(credentialsProvider);
TransferUtility transferUtility = new TransferUtility(s3Client, this.
getApplicationContext());
TransferObserver observer = transferUtility.upload("testbucketzzzz", "test.jpg",
file);
每次我尝试上传图片时都会收到以下错误
UploadTask: Failed to upload: 37 due to The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. (Service: Amazon S3; Status Code: 400; Error Code: InvalidRequest; Request ID: 9787E53737D02BA7)
我认为这只会是旧版 AWS SDK 的问题。经过无数小时的修复尝试后,我发现了以下内容 "trick" 但这只会导致我出现另一个错误,根本不需要。
System.setProperty(SDKGlobalConfiguration.ENABLE_S3_SIGV4_SYSTEM_PROPERTY, "true");
您可以使用以下代码片段将图片上传到 Amazon S3
(确保您在 MainThread
中没有这样做):
BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials(
ACCESS_KEY,
SECRET_KEY
);
AmazonS3Client s3Client = new AmazonS3Client(basicAWSCredentials);
s3Client.setEndpoint(ENDPOINT);
s3Client.setRegion(Region.getRegion(Regions.EU_WEST_1));;
PutObjectRequest por = new PutObjectRequest(
"YOUR_BUCKET_NAME", "YOUR_KEY", file);
}
s3Client.putObject(por);
如果您想了解有关为什么您的方法不起作用的更多信息,可以参考 this link