以下是我的代碼。我複製了可互操作的訪問鍵。客戶端和祕密都來自同一頁面。我在表單中使用ClientAccess ID中的客戶端密鑰並進行散列保密。 但我得到錯誤說無效的參數。正在顯示無法使用郵政方法將文件上傳到谷歌雲存儲
詳細誤差作爲「無法創建使用POST桶」
下面是我使用的Python代碼。
import webapp2
import cgi
import datetime
import urllib
import base64
import hmac, hashlib
import sha
policy_document = '''{"expiration": "2016-06-16T11:11:11Z",
"conditions": [
["starts-with", "$key", "" ],
{"acl": "public-read" },
]
}'''
policy = base64.b64encode(policy_document).strip()
h = hmac.new('xxx', digestmod=sha.sha)
h.update(policy)
signature = base64.b64encode(h.digest())
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write('<html><body>')
self.response.write('<form action="http://storage.googleapis.com/www.xyz.com" method="post" enctype="multipart/form-data">')
self.response.write('<input type="text" name="key" value="">')
self.response.write('<input type="hidden" name="bucket" value="www.xyz.com">')
#self.response.write('<input type="hidden" name="Content-Type" value="image/jpeg">')
self.response.write('<input type="hidden" name="GoogleAccessId" value="GOOGxxxxx">')
self.response.write('<input type="hidden" name="acl" value="public-read">')
self.response.write('<input type="hidden" name="success_action_redirect" value="http://www.linklip.com/storage.html">')
self.response.write('<input type="hidden" name="policy" value="%s">' % policy)
self.response.write('<input type="hidden" name="signature" value="%s">' % signature)
self.response.write('<input name="file" type="file">')
self.response.write('<input type="submit" value="Upload">')
self.response.write('</form>')
self.response.write('</body></html>')
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)
我想使用HTML表單將文檔上傳到GCS。我已經創建了這個存儲桶但我無法上傳。我嘗試了文檔中給出的內容(https://developers.google.com/storage/docs/reference-methods#postobject),但仍然無法正常工作。 – user2131868 2013-05-05 09:58:50