我无法从暂停状态恢复 UploadTask。如果我在不尝试暂停上传的情况下让它完成,我就能够成功上传视频。根据Firebase Storage Android Documentation您可以使用 resume
函数恢复之前暂停的 UploadTask。不幸的是,当我尝试自己执行示例时,我观察到一个
04-11 15:20:36.285 9432-9660/io.pristine.firebasesample E/UploadTask: Unable to read bytes for uploading java.io.IOException: Stream closed at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:162) at java.io.BufferedInputStream.read(BufferedInputStream.java:325) at com.google.android.gms.internal.zzbtu.zzqP(Unknown Source) at com.google.firebase.storage.UploadTask.zzacR(Unknown Source) at com.google.firebase.storage.UploadTask.run(Unknown Source) at com.google.firebase.storage.StorageTask$8.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761)
紧接着是另一个:
04-11 15:20:36.285 9432-9660/io.pristine.firebasesample E/StorageException: StorageException has occurred. An unknown error occurred, please check the HTTP result code and inner exception for server response. Code: -13000 HttpResult: 200
HttpResult 200 似乎正常,-13000 looks like ERROR_UNKNOWN
在 github 存储库出现故障时重现的基本步骤:
- 使用 firebase 身份验证进行身份验证(不确定是否需要)
- 从 Assets 中复制一个二进制文件(如果需要,您可以从 SD 卡读取)
- 使用 putFile(Uri, StorageMetadata) 启动 UploadTask
- 在上传开始后和完成前调用 UploadTask.pause() 暂停 uploadTask
- 通过调用 UploadTask.resume() 确认上传任务暂停后,在一两秒内恢复上传任务
- 观察存储异常
我正在使用 firebase-database:10.2.1
、firebase-auth:10.2.1
& firebase-storage:10.2.1
作为唯一的依赖项,并在多个支持 google play 服务的设备上进行了测试。 (Google Play 可用性:成功
)
使用此功能的目的是允许应用程序的用户手动暂停和恢复上传。 (有些位于 wi-fi 热点上,这些热点对我所知道的 android 操作系统不可见)
最佳答案
这里是 Firebaser
该错误已在不久前修复,但尚未对客户端库进行修复。请在下一版本的 SDK 中查找更新。如果您仍有问题,请在此处回复。
关于android - 恢复 UploadTask 导致 E/StorageException : BufferedInputStream is closed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43355928/