1

Cloudboost ファイル オブジェクトからすべてのファイル情報を取得するのに少し問題があります。ファイルのID、名前、およびURLを取得するために使用しているコードは次のとおりです。問題は、ID と名前を取得できることです。ただし、URL は null であり、その理由や修正方法がわかりません。何か案は??

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

filetableの列Pubsが実際にはタイプFileであり、に保存CloudFileするCloudBoost前にに保存したと仮定します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 つのステップがありません。

1. 2.の本体をCloudObject

取得しますCloudFilefile3.上記の手順 2 の出力を使用してCloudObject

作成します。JavaSDK-1.0.3 でこの操作を簡単にするための改善点の 1 つとして表示されます。これは、リポジトリからすぐに複製できるはずです。CloudFile

CloudObject.getFile([columnName])CloudBoost

于 2016-03-11T06:17:08.913 に答える