目前,我正在尝试下载亚马逊s3上的存储桶中的文件。我正在使用这段代码进行调试,因为当我最后尝试从文件中读取时,总是找不到EN0ENT /文件。
String str_FilePathInDevice = "/sdcard/" + "/"
+ "RestoreFolderName" + "/" + "filname.extention";
File file = new File(str_FilePathInDevice);
String str_Path = file.getPath().replace(file.getName(), "");
File filedir = new File(str_Path);
try {
filedir.mkdirs();
file.createNewFile();
} catch (Exception ex1) {
}
System.out.println(file.toString());
System.out.println(file.canRead());
System.out.println(file.length());
TransferObserver observer2 = transferUtility.download(
"arabianbucket", /* The bucket to upload to */
"demo.txt", /* The key for the uploaded object */
file /* The file where the data to upload exists*/
);
System.out.println(file.toString());
System.out.println(file.canRead());
System.out.println(file.length());
file.canread()在transferutility.download链接之后最终从true翻转为false。我不太确定为什么会这样。有谁知道如何成功读取亚马逊s3中的对象?在我的清单中,我已经删除了权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
谢谢!
答案 0 :(得分:0)
TransferUtility提供异步传输。在您的代码中transferUtility.download
启动下载,并在后台线程中进行下载,以免阻塞主线程。在转移完成之前,我不建议任何文件操作。您可以将监听器附加到观察者并监听状态和进度更改。有关详细信息,请参阅{{3}}。