Amazon S3でファイルのサイズを取得したいのですが、ダウンロードする必要はありません。 HTTPヘッダーを送信しようとしましたが、返される要求にはコンテンツ長のHTTPヘッダーが含まれます。403を取得するAmazon S3ファイルを要求していません
ここに私のコードです:
import httplib
import urllib
urlPATH = urllib.unquote("/ticket/fakefile.zip?AWSAccessKeyId=AKIAIX44POYZ6RD4KV2A&Expires=1495332764&Signature=swGAc7vqIkFbtrfXjTPmY3Jffew%3D")
conn = httplib.HTTPConnection("cptl.s3.amazonaws.com")
conn.request("HEAD", urlPATH, headers={'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding': 'none',
'Accept-Language': 'en-US,en;q=0.8',
'Connection': 'keep-alive'}
)
res = conn.getresponse()
print res.status, res.reason
エラーメッセージは次のとおりです。
403 Forbidden
ので、URLに "%" をエスケープするために、私はurllib.unquoteを使用し、403は禁断の取得後、私は私はAmazonがブラウザによって要求されたように見えるファイルを返すだけかもしれないと思ったので、いくつかのヘッダーを試してみようと試みますが、私は403エラーを受け取り続けます。
これは、HTTPリクエストを正しく処理するための特定の引数を必要とするAmazonのケースですか、それとも自分のコードが悪いですか?
あなたは余分な引用必要か?それもなくても403に戻りますか? – Scovetta
あなたは何を参照していますか? – Peter
申し訳ありませんが、私は 'urllib.unquote'を意味していました。 – Scovetta