java - Android Java 的 Cloudboost 文件 url 为空

标签 java android cloudboost

我在从我的 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 类型,并且您保存了一个 CloudFileCloudBoost,然后将其保存到 Pubs
您现在应该像这样访问您的 CloudFile:

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

这是因为你的线路

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

简单地

  1. 返回 CloudObject
  2. 的主体
  3. 使用上面第 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/

相关文章:

java - 如何向netbeans菜单栏添加快捷键?

java - 调试二十一点程序? ( java )

java - BoundedFifoBuffer 和 CircularFifoBuffer 的区别?

real-time - 在 CloudBoost 上禁用实时

java - 向子面板添加按钮

android - 如果签名没问题,我可以从 BaseGameActivity 或 GameHelper 中找到玩家 ID,而不仅仅是 bool 值吗?

以编程方式共享 Android 屏幕(Root)

android - 上传文件到FTP

javascript - Cloudboost:设置网站

javascript - Cloudboost。初学者。如何显示查询示例?