【问题标题】:How do I read a file I've downloaded from S3 with Android Studio?如何使用 Android Studio 读取从 S3 下载的文件?
【发布时间】:2020-12-27 23:21:29
【问题描述】:

我正在使用 Amplify Framework 从 S3 下载文件,并且一直关注 AWS's documentation。我已经成功下载了文件,但我不知道它保存在哪里,也不知道如何访问它。文档没有说,我有点困惑,因为它没有出现在项目文件中。有人可以向我解释一下,或者指出我正确的方向吗?访问文件内容的下一步是什么?在这种情况下,它是一个纯文本文件,但是一旦我阅读了该文件,我打算继续阅读 JSON 文件。

这是我用来下载文件的代码。

Amplify.Storage.downloadFile(
    "myfile.txt",
    new File(getApplicationContext().getFilesDir() + "/download.txt"),
    result -> Log.i("MyAmplifyApp", "Successfully downloaded: " + result.getFile().getName()),
    error -> Log.e("MyAmplifyApp",  "Download Failure", error)
);

【问题讨论】:

  • 你能在你的电脑上找到这个文件吗?它在哪里?
  • 不,但是当我在文件对象上调用 getAbsolutePath() 时,我可以看到文件路径是:/data/user/0/com.example.amplifyapp/files/download.txt - 但是,我在我的电脑上找不到那个位置
  • this answer 有帮助吗?
  • 是的,非常感谢。现在我知道文件正在下载,如何从那里读取它?

标签: android amazon-web-services amazon-s3 aws-amplify


【解决方案1】:

基于cmets,我想确定一个关键点是清楚的。 Amplify 库会将文件下载到您的 Android 设备上的存储中。它不会将文件保存在您的计算机/PC 上。

如果您想在您的 PC 上查看下载的文件,您需要使用 adb pull 从 Android 手机拉取它。在您执行此操作之前,内容只会出现在您的 Android 手机上。

在您的情况下,您选择将文件下载到 Android 设备上的 app-specific file storage area

/data/user/0/com.example.amplifyapp/files/download.txt

在您的 Android 应用程序中,您可以继续引用 File 句柄,就像上面所做的那样:

String appSpecificFilesDir =
    getApplicationContext().getFilesDir();
String textFilePath =
    appSpecificFilesDir + "/download.txt";
File file = new File(textFilePath);

【讨论】:

    猜你喜欢
    • 2014-11-28
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    相关资源
    最近更新 更多