我创建了一个将图像上传到 AWS S3 存储桶的函数。当按下按钮时调用该函数。这适用于新的 Gradle 构建后的第一个实例。但是当我再次尝试调用该函数时,出现以下错误:
E/StorageQuickstart: The client issued a subsequent call to `Amplify.configure`
after the first had already succeeded.
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Upload to AWS S3
File imageFile = new File(imgFilePath);
uploadImage(imageFile.getName(), imgFilePath);
finish();
}
});
功能:
// AWS Amplify
private void uploadImage(String imageName, String imageAbsolutePath) {
// Amplify Initialize
AWSMobileClient.getInstance().initialize(getApplicationContext(), new Callback<UserStateDetails>() {
@Override
public void onResult(UserStateDetails userStateDetails) {
try {
Amplify.addPlugin(new AWSS3StoragePlugin());
Amplify.configure(getApplicationContext());
Log.i("StorageQuickstart", "Amplify Initialized");
Amplify.Storage.uploadFile(
imageName,
imageAbsolutePath,
new ResultListener<StorageUploadFileResult>() {
@Override
public void onResult(StorageUploadFileResult result) {
Log.i("StorageQuickStart", "Successfully uploaded: " + result.getKey());
Log.i("ImageURL", getS3ObjectUrl(imageName));
}
@Override
public void onError(Throwable error) {
Log.e("StorageQuickstart", "Upload error.", error);
}
}
);
} catch (Exception e) {
Log.e("StorageQuickstart", e.getMessage());
}
}
@Override
public void onError(Exception e) {
Log.e("StorageQuickstart", "Initialization error.", e);
}
});
}