【发布时间】:2020-05-12 04:11:28
【问题描述】:
我在官方网站上搜索了latest AWS docs for the Android SDK,。不幸的是,我找不到与此相关的任何内容。如何使用 Android SDK 删除特定或多个文件或对象?
【问题讨论】:
标签: android amazon-web-services amazon-s3 aws-amplify aws-amplify-sdk-android
我在官方网站上搜索了latest AWS docs for the Android SDK,。不幸的是,我找不到与此相关的任何内容。如何使用 Android SDK 删除特定或多个文件或对象?
【问题讨论】:
标签: android amazon-web-services amazon-s3 aws-amplify aws-amplify-sdk-android
截至 2020 年中,首选方法是使用适用于 Android 的 AWS Amplify 库。
见the documentation for remove(), in the Storage category。它建议这样做(在 Java 中):
Amplify.Storage.remove(
"myUploadedFileName.txt",
result -> Log.i("MyAmplifyApp", "Successfully removed: " + result.getKey()),
error -> Log.e("MyAmplifyApp", "Remove failure", error)
);
OR(在 Kotlin 中):
Amplify.Storage.remove(
"myUploadedFileName.txt",
{ result -> Log.i("MyAmplifyApp", "Successfully removed: " + result.getKey()) },
{ error -> Log.e("MyAmplifyApp", "Remove failure", error) }
)
【讨论】:
我找到了一个可行的解决方案,如果有人来看它可能会有所帮助,但在适用于 Android SDK 的 AWS 文档中没有找到此解决方案,并且 Amplify 框架处于预览阶段,可能几个月后很快就会出现。到那时解决办法是:
new Thread(new Runnable() {
@Override
public void run() {
s3Client.deleteObject(bucketName, filePath);
}
}).start();
【讨论】:
您可以在放大官方文档中找到Amplify.Storage.remove 方法。
这是link
private void removeFile() {
Amplify.Storage.remove(
"myUploadedFileName.txt",
new ResultListener<StorageRemoveResult>() {
@Override
public void onResult(StorageRemoveResult storageRemoveResult) {
Log.i("StorageQuickStart", "Successfully removed: " + storageRemoveResult.getKey());
}
@Override
public void onError(Throwable error) {
Log.e("StorageQuickStart", error.getMessage());
}
}
);
}
【讨论】: