Я создал функцию для загрузки изображения в AWS S3 bucket, функция вызывается при нажатии кнопки. Это работает для первого экземпляра после новой сборки 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);
}
});
}