问题描述
我想将图像上传到我的 s3 存储桶。 我尝试了不同的解决方案来上传文件,例如但我总是收到错误,如 ssl 异常:
无法执行 HTTP 请求:写入错误:ssl=0x55a53d5240:系统调用期间 I/O 错误,连接被对等重置
我发现一条关于此异常的评论 评论是如果您的网络不好,您可能会出错。 但是我的网络很好。
我的代码如下:
private void uploadImage() {
// Initialize the Amazon Cognito credentials provider
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getContext().getApplicationContext(),
"us-west-2:************", // Identity Pool ID
Regions.US_WEST_2 // Region
);
ClientConfiguration configuration = new ClientConfiguration();
configuration.setConnectionTimeout(50000);
configuration.setSocketTimeout(300000);
final AmazonS3 s3 = new AmazonS3Client(credentialsProvider, configuration);
TransferUtility transferUtility = new TransferUtility(s3, getContext().getApplicationContext());
LocalImage image = mAddImageAdapter.getLocalImage(0);
final File mFile = new File(image.getImagePath());
long len = mFile.length();
transferUtility.upload("2y1s-images", mFile.getName(), mFile).setTransferListener(new TransferListener() {
@Override
public void onStateChanged(int id, TransferState state) {
Log.i(TAG, "image upload state: " + state.name());
}
@Override
public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {
Log.e(TAG, "image upload percentage: " + bytesCurrent + " -" + bytesTotal);
}
@Override
public void onError(int id, Exception ex) {
Log.e(TAG, "image upload error: " + ex.getMessage());
}
});
}
1楼
花了2天后我找到了异常原因。 ssl 异常的主要原因是我的认知凭证和不同区域的 s3 存储桶。 我希望这个答案可以帮助其他人。