我在从我的 Cloudboost 文件对象获取所有文件信息时遇到了一点问题。这是我用来获取文件的 ID、名称和 URL 的代码。问题是我可以取回 id 和 name;但是,url 是空的,我不知道为什么或如何修复它。有什么想法吗??
class FileQuery extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
CloudQuery query = new CloudQuery("Pubs");
query.include("file");
query.equalTo("id", "U1YV132B");
try {
query.find(new CloudObjectArrayCallback() {
@Override
public void done(CloudObject[] x, CloudException t) throws CloudException {
if (x != null) {
for (int i = 0; i < x.length; i++) {
final CloudFile f = new CloudFile(x[i].getDocument());
f.fetch(new CloudFileArrayCallback() {
@Override
public void done(CloudFile[] x, CloudException t) throws CloudException {
Log.d("dozer74", "File Id: " + f.getId()); // This will print out
Log.d("dozer74", "File Name: " + f.getFileName()); // This will print out
Log.d("dozer74", "File URL: " + f.getFileUrl()); // This is null
}
});
}
}
}
});
} catch (CloudException e) {
e.printStackTrace();
}
return null;
}
}
我是这样称呼这个类的
new FileQuery().execute();
最佳答案
假设 Pubs
表中的 file
列实际上是 File
类型,并且您保存了一个 CloudFile
到 CloudBoost
,然后将其保存到 Pubs
。
您现在应该像这样访问您的 CloudFile
:
final CloudFile file=new CloudFile(x[i].getDocument().getJSONObject("file"));
这是因为你的线路
final CloudFile f = new CloudFile(x[i].getDocument());
简单地
- 返回
CloudObject
的主体
- 使用上面第 1 步的输出创建
CloudFile
如下所示,您缺少中间的一步:
1.获取CloudObject
的主体
2. 检索 CloudObject
列 file
下的 CloudFile
主体
3. 使用上面第 2 步的输出创建 CloudFile
。
CloudObject.getFile([columnName])
是 JavaSDK-1.0.3 中使此操作更容易的改进之一,您应该可以很快从 CloudBoost
中克隆它 repo 。
关于java - Android Java 的 Cloudboost 文件 url 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35931651/