0

Box-API で現在発生している問題をデバッグするのに苦労しています。数千のユーザー ファイルを指定すると、ほとんどのファイルを一貫して正常にダウンロードできますが、他のファイルは一貫して次の応答で失敗します。

<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidArgument</Code><Message>Either the Signature query string parameter or the Authorization header should be specified, not both</Message><ArgumentValue>BoxAuth api_key=<removed>&amp;auth_token=<removed></ArgumentValue><ArgumentName>Authorization</ArgumentName><RequestId>83572B6EE6CCAF05</RequestId><HostId>MDk4PiUtdr/RS4vqd7p5Qw1MwohBHkhs35dLf6KWZx+11VBQtbTurwq0wVF9QTPC</HostId></Error>

これは、 https://api.box.com/2.0/files/$ID/contentエンドポイントによって返された 302 リダイレクトの場所から返されています。ほとんどのファイルではこれは正しく機能しますが、何らかの理由で特定のファイルでは一貫して機能しません。成功した場合と失敗した場合の両方で、リダイレクト URL へのリクエストのヘッダーをキャプチャしましたが、違いはわかりません。

パッシングケース:

GET /bc/1/91652da319a59980c374f9059718080e/JolueqOGpciD6dgYhecNBoVpYxkvmYe1ZLheZor6BF4DUBIelMQTkFwYIys3nIibNIIEHUp447tBZLaXDzIbNQ,,/98713569dfe691813e006a1651c7c3e6/ HTTP/1.1
Host: dl.boxcloud.com
Accept: */*
Authorization: BoxAuth     api_key=<removed>&auth_token=<removed>

失敗例:

GET /bc/1/44d67f0a3e406676711cbd18cc657696/JolueqOGpciD6dgYhecNBoVpYxkvmYe1ZLheZor6BF4DUBIelMQTkFwYIys3nIibNIIEHUp447tBZLaXDzIbNQ,,/405f32a3d6d6e1240832ab14a08e6d99/ HTTP/1.1
Host: dl.boxcloud.com
Accept: */*
Authorization: BoxAuth     api_key=<removed>&auth_token=<removed>

私はデバッグのアイデアに関して壁にぶつかっているので、提案を受け付けています。

4

1 に答える 1

0

これは、dl.boxcloud.com のリダイレクト URL がボックスの認証ヘッダーに不寛容であることと相まって、Curl がリダイレクト間でヘッダーを維持する方法に問題があることが判明しました。curl の FOLLOWLOCATION を false に設定することで問題を解決し、代わりにリクエストのすべてのヘッダーをクリアした後、手動でリダイレクトをたどりました。

これが特定のリクエストでのみ発生し、他のリクエストでは発生しなかった理由はまだ明らかではありません。また、バックエンドがこの動作に非常に敏感である理由もまだ明らかではありません。

于 2012-11-08T20:34:56.853 に答える