Below you will find pages that utilize the taxonomy term “cloud storage”
Posts
Google cloud storage產生signed url的應用
Signed url的目的跟說明 這個功能主要是讓系統認可的使用者可以透過取的一個暫時的網址去存取雲端空間的權限
目前市面上有很多雲端提供者(cloud provider),例如Google(GCP), Amazon, Azure…,他們都提供網路空間上開發者進行系統整合。
但是這些的空間通常因爲安全性(Security)的考量,都會將空間設定是私人,為的是防止有心人隨意上傳檔案。 但是會衍生出系統使用者(user)並沒有辦法上傳檔案,為了解決這個問題上 signed URL這個機制。
使用者必須先透過系統驗證機制(帳號/密碼, oauth…)讓系統知道使用者是誰之後,系統認可後為使用者製造出一段暫時性的網址,讓使用者去上傳或者是瀏覽檔案系統
在此篇文章中我們針對Google service的進行說明
如何做到Signed url的機制 使用者必須透過驗證機制讓伺服器知道他是合法的使用者,如此一來伺服器可以為使用者製造出一個暫時有權限的網址,並透過API回傳給使用者,使用者取的後就可以使用這個網址直接上傳到目標的空間。當有心人士想上傳不合法的檔案,會因為無取得系統的認可而不能上傳檔案(因為folder預設會是privated)。
Debug過程 Send PUT http request to upload the file to a GCS bucket. And then the error message pop up on the chrome dev console. :::danger Access to XMLHttpRequest at ‘https://storage.googleapis.com/xxxxxx' from origin ‘http://127.0.0.1:5000’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. ::: You have to update the bucket CORS policy by running following command.
Posts
AWS S3 REST 數位簽章與驗證
AWS S3 REST簽章與驗證 假設在S3裡的物件只設定給 “authenticated AWS user” 操作,那我們要如何利用數位簽章讓使用者可以透過 api resquest 去做身份認可(identity)並操作S3裏面的物件。 假設在S3上我們有一個name為 wisigntest 的bucket,裏面存在一個名為hello.jpg的物件,設定為 “authenticated AWS user” 可以R/W。我們將紀錄如何使用API去存取S3物件。 簡易瀏覽物件
GET /hello.jpg HTTP/1.1 Host: https://wisigntest.s3-ap-northeast-1.amazonaws.com Date: Fri, 28 Apr 2017 05:56:29 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:frJIUN8DYpKDtOLCwo//yllqDzg= 下面是我用Postman去讀取S3檔案的畫面 The Authentication Header
下面的格式是主要傳送給 API 的 Header 上要添加的 Authorization 資訊,透過Signature,AWS可以驗證此次的操作是否有效。
Authorization: AWS {AWSAccessKeyId}:{Signature} 下面是 Nodejs 計算的Signature程式碼
var crypto = require("crypto"); // from IAM role var secret_access_key = '64nd6BY7gTPDspq54gQcRth5dvORNdDvqL4BZ5zd'; var access_key_id = 'AKIAIUHT2BNZP65ADZKQ' var StringToSign = "GET" + "\n" + "" + "\n" + "" + "\n" + new Date().