2016-05-18 70 views
0

我可以將文件匿名上傳到我的谷歌雲存儲存儲區,但無法使用策略和簽名從HTML頁面獲取上傳文件。Google Cloud Storage使用POST從HTML上傳文件。簽名問題

我已經花了很多時間閱讀的幾個職位:

我也試圖爲HTML POST他們docs..can't描述的鏈接後跟隨谷歌文檔,因爲我只有1個聲望點...

我的政策文件是一個簡單的JSON形式非常類似於谷歌文件中的例子。

{ 「過期」: 「2020-06-16T11:11:11Z」,

「條件」:[

[ 「開始-與」, 「$鍵」, 「」],

{ 「控制列表,acl」: 「鬥所有者讀」},

{ 「鬥」: 「XXXXXXXXX」},

{ 「success_action_redirect」:「在這裏重定向URL ......我有刪除它,由於我的聲譽......「},

[ 「當量」, 「$內容類型」, 「應用/ PDF」],

[ 「內容長度範圍內」,0,百萬]

]

}

XX的簡單的編輯。

而且,我使用下面的HTML:

政策和簽名串已被截斷了顯示的便利。

<form action="http://storage.googleapis.com/flashbidz_uploads/" 
           method="post" enctype="multipart/form-data"> 
          <input type="text" name="key" value=""> 
          <input type="hidden" name="bucket" value="XXXXX"> 
          <input type="hidden" name="Content-Type" value="application/pdf"> 
          <input type="hidden" name="GoogleAccessId" value="[email protected]"> 
          <input type="hidden" name="acl" value="bucket-owner-read"> 
          <input type="hidden" name="success_action_redirect" value="https://flashbidz.appspot.com/#/sellerhome"> 
          <input type="hidden" name="policy" value="eyJleHBpcm...XQ0KfQ=="> 
          <input type="hidden" name="signature" value="5P5lFuZ...nkTlyY="> 

          <input name="file" type="file"> 
          <input type="submit" value="Upload"> 
         </form> 

當我運行此我收到消息: 我們計算出你所提供的簽名不匹配的請求籤名。檢查您的Google密鑰和簽名方法。

我下面的過程是從這個網站here創建我的政策的Base64表示,然後使用本網站here創建SHA-256的簽名字符串(使用HTML的Base64表示),並與在簽名我的服務帳戶密鑰的private_key_id。

我還使用了密鑰的電子郵件形式進行簽名以及與服務帳戶關聯的客戶端ID。

我不知道我出錯的地方,也不知道如何調試。任何幫助將非常感激,我明白,這個問題上已經有很多帖子。我讀過他們(可能沒有理解他們)。

謝謝!

回答

0

基本上,您需要首先進行身份驗證,這會在您的瀏覽器會話中添加令牌,稍後您無需顯式傳遞令牌。 (見thisthis

你可以找到一個例子here

+0

感謝@varunpant,我已經在多個應用程序中成功使用OAuth。我會看看你提供的鏈接,看看是否有更多的線索。我只是想使用B64策略和簽名從HTML頁面上傳。我會在今天晚些時候回覆,因爲我有時間真正認真看待你的建議。謝謝! –

相關問題