ファイルのメタデータを取得するために、api 2.0 curlの例に従えば、その情報が得られます。私は、ファイルをダウンロードするためのURLに/データを追加すると、カールは言う:ファイルのダウンロードのカールがうまくいかない
カール:サーバー
から(52)空の回答が、私は2つのファイルの両方のテキストファイル、同じ結果でこれをやりました。
ここのシステムはOpenBSD 5.0です。
python 3では、サーバーからの応答に空のステータス行が含まれているという例外が発生します。
ファイルのメタデータを取得するために、api 2.0 curlの例に従えば、その情報が得られます。私は、ファイルをダウンロードするためのURLに/データを追加すると、カールは言う:ファイルのダウンロードのカールがうまくいかない
カール:サーバー
から(52)空の回答が、私は2つのファイルの両方のテキストファイル、同じ結果でこれをやりました。
ここのシステムはOpenBSD 5.0です。
python 3では、サーバーからの応答に空のステータス行が含まれているという例外が発生します。
ファイル自体が空の場合は、空の応答が返されます。たとえば、2つのテキストファイルにテキストが含まれていない場合、テキストは返されません。つまり、これは予想される動作です。
私は同じ問題を抱えています。ファイルを正常にアップロードしました。ファイルIDを取得しました。ファイルをダウンロードしようとすると、何も起こりません。上記の元のポスターと同様に、URLの「/ data」部分を取り除くと、すべての情報をファイルについて正常に取得できます。
ここに、その特定のファイルIDの簡単な「ファイルのダウンロード」ボタンが付いたフォームから呼び出される「ダウンロードコード」があります。
$boxkey = "ThisIsMyAPIKey";
$auth_token = $_POST['auth_token'];
$url = "https://www.box.com/api/2.0/files/".$_POST['file_id']."/data";
$header = array("Authorization: BoxAuth api_key=".$boxkey."&auth_token=".$auth_token);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_exec($ch);
curl_close($ch);
私は同じ問題がありました。問題は、CURLOPT_FOLLOWLOCATION
オプションがtrueに設定されている必要があることです。 Boxは、API呼び出しから実際のファイルへのリダイレクトを実行します。それがなければ、空の応答を返します。
これはコマンドラインでどのように行うのか不思議で、 '-L'オプションなので、' curl -L
$url = "https://api.box.com/2.0/files/$fileId/content?access_token=$accessToken";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close($ch);
でも、両方のファイルにテキストが含まれています。 – user1359805
これは私にとっても起こっているようですが、バグかもしれません。私はそれを見てみましょう、私はここでフォローアップします。 – seanrose