Ich möchte die Größe einer Datei auf Amazon S3 abrufen, ohne sie herunterladen zu müssen. Mein Versuch war, zu versuchen, einen HTTP HEAD zu senden, und die zurückgelieferte Anforderung schließt Inhalt-Länge HTTP-Überschrift mit ein.403 Forbidden anfordern Amazon S3-Datei anfordern
Hier ist mein Code:
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
Fehlermeldung ist:
403 Forbidden
So das "%" in der URL zu entkommen, habe ich urllib.unquote und nach 403 Forbidden immer, ich Versuchen Sie auch, einige Header hinzuzufügen, da ich dachte, dass Amazon nur Dateien zurückgibt, die anscheinend von einem Browser angefordert werden, aber ich bekomme weiterhin 403 Fehler.
Ist dies ein Fall von Amazon benötigt bestimmte Argumente, um die HTTP-Anfrage richtig zu bedienen oder ist mein Code schlecht?
Sind Sie sicher, dass Sie die zusätzliche Angabe benötigen? Gibt es 403 auch ohne das? – Scovetta
Auf welche zusätzlichen Zitate beziehen Sie sich? – Peter
Sorry, Tippfehler, ich meinte die 'urllib.unquote'. – Scovetta