我正在尝试将文件从我的 android 设备上传到 Kinvey 文件存储,但我得到:
java.net.SocketTimeoutException: Read timed out.
我确实在 Kinvey 控制台上看到了上传的文件,但它已损坏,当我尝试下载时文件大小为 10mb,而原始文件大小约为 50mb。代码如下(非常接近文档):
File file = new File(Environment.getExternalStorageDirectory(), "images.zip");
FileMetaData metadata = new FileMetaData(); //create the FileMetaData object
metadata.setId("images");
metadata.setFileName("images.zip");
AccessControlList acl = new AccessControlList();
acl.setGloballyReadable(true);
metadata.setAcl(acl);
mKinveyClient.file().upload(metadata, file, new UploaderProgressListener() {
@Override
public void onSuccess(Void arg0) {
// TODO Auto-generated method stub
}
@Override
public void onFailure(Throwable arg0) {
// TODO Auto-generated method stub
}
@Override
public void progressChanged(MediaHttpUploader uploader) throws IOException {
}
});
我在这里发布了同样的问题(Kinvey 支持论坛)。
更新
按照埃维利的回答,我做了一些测试。
- 上传了一个文件~9mb。工作正常。可以下载和解压文件没有损坏。显示正确的文件大小。
- 上传了一个 ~19mb 的文件,上传时没有 socketTimeoutException。但上传的文件已损坏。下载时显示文件大小为10mb。
- 以前的情况仍然代表文件大小 ~ 50mb。