我正在尝试将文件从我的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 {
}
});
我发布了同样的问题here(Kinvey支持论坛)。
更新
根据ewilly的回答,我做了一些测试。
答案 0 :(得分:0)
我阅读了kinvey
网站的常见问题解答。这可能对您有所帮助:
我认为你的档案太大了。 kinvey
API仅允许导入20MB以下的文件。在您的情况下,您可以将文件拆分为块或创建要使用REST API导入的脚本。
答案 1 :(得分:0)
您是否尝试在捕获故障后重试文件上传?
请注意,50mb是一个相当大的文件,因此您可能还需要确保设备处于wifi状态。如果您正在使用数据计划,并且不幸的是连接中断了,那么就没有什么可以做的了。