1

我在从 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();
4

1 回答 1

3

假设filetablePubs中的列实际上是 typeFile并且您在将其保存CloudFileCloudBoost之前保存了 a Pubs
您现在应该CloudFile像这样访问:

final CloudFile file=new CloudFile(x[i].getDocument().getJSONObject("file"));

这是因为您的线路

final CloudFile f = new CloudFile(x[i].getDocument());

简单地

  1. 返回的主体CloudObject
  2. CloudFile使用上面步骤 #1 的输出创建

您缺少中间的一步,如下所示:

1.获取 2. 的主体。在3.中CloudObject

检索下列的主体。使用上面步骤 #2 的输出 创建。在 JavaSDK-1.0.3 中显示为使此操作更容易的改进之一,您应该能够很快从repo 中克隆它。CloudFilefileCloudObject

CloudFile

CloudObject.getFile([columnName])CloudBoost

于 2016-03-11T06:17:08.913 回答