1

我在官方网站上搜索了最新的 AWS 文档以获取 Android SDK 。不幸的是,我找不到与此相关的任何内容。如何使用 Android SDK删除特定或多个文件或对象?

4

3 回答 3

1

截至 2020 年中,首选方法是使用适用于 Android 的 AWS Amplify 库。

请参阅存储类别中的文档remove()。它建议这样做(在Java中):

Amplify.Storage.remove(
    "myUploadedFileName.txt",
    result -> Log.i("MyAmplifyApp", "Successfully removed: " + result.getKey()),
    error -> Log.e("MyAmplifyApp", "Remove failure", error)
);

(在 Kotlin 中):

Amplify.Storage.remove(
    "myUploadedFileName.txt",
    { result -> Log.i("MyAmplifyApp", "Successfully removed: " + result.getKey()) },
    { error -> Log.e("MyAmplifyApp", "Remove failure", error) }
)
于 2020-06-08T04:08:32.543 回答
0

Amplify.Storage.remove您可以在放大官方文档中找到该方法。这是链接

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());
            }
        }
    );
}
于 2020-01-26T16:06:28.500 回答
0

我找到了一个可行的解决方案,如果有人来看它可能会有所帮助,但在 AWS for Android SDk 的文档中没有找到这个,并且 Amplify 框架处于预览阶段,也许几个月后很快就会出现。到那时解决方案是:

new Thread(new Runnable() {
  @Override
  public void run() {
    s3Client.deleteObject(bucketName, filePath);
  }
}).start();
并且总是创建一个新线程,否则它会抛出错误。谢谢你

于 2020-01-27T04:26:38.287 回答