阿里雲oss 檔案上傳

2021-08-08 15:28:13 字數 3127 閱讀 7061

寫在前面

阿里雲oss的各種sdk,都是對它的api進行的封裝。所以如果我們直接呼叫api時出錯,卻又不知道**出問題時,可以直接閱讀sdk的原始碼,找到問題所在。
首先貼一下阿里雲oss官網貼出的簽名計算方式:

authorization = "oss " + accesskeyid + ":" + signature

signature = base64(hmac-sha1(accesskeysecret,

verb + "\n"

+ content-md5 + "\n"

+ content-type + "\n"

+ date + "\n"

+ canonicalizedossheaders

+ canonicalizedresource))

通過計算方法可以看出authorization是由四部分組成:

1. 字串oss(注意oss後面有乙個空格)

2. accesskeyid,也就是oss bucket的使用者名稱。可以在oss控制台 - 物件儲存oss - 概覽,在頁面的右側即可看到accesskey選項,點進去可以檢視。

3. 字串:

4. signature簽名,這裡再貼一下阿里雲oss官網給出的計算說明:

例子

這裡拿object的put api舉例說明:

步驟1.生成signature之前的引數

verb: "post"

content-md5: "" //如果沒有md5可以為空字串

content-type: "text/plain"

date: "tue, 26 sep 2017 07:10:15 gmt" //gmt格式時間

canonicalizedossheaders: ["x-oss-date:tue, 26 sep 2017 07:10:15 gmt","x-oss-user-agent:aliyun-sdk-js/4.10.0 chrome 60.0.3112.113 on windows 10 64-bit"]

canonicalizedresource: "/bucket/aa.txt" //bucket為你的bucket名稱

上面的canonicalizedossheaders實際上是乙個陣列,第乙個元素為x-oss-date,值與date一樣,後面的x-oss-user-agent是從oss-sdk原始碼上拔下來的,可以直**出包含了sdk、瀏覽器版本、系統版本等資訊。

2.將前面的引數拼接成乙個字串

從signature的規則中,每個引數後面都要加乙個換行符,從而組成乙個字串。我們先將以上引數放在乙個陣列中。(canonicalizedossheaders有兩項則在陣列中有兩個元素,這裡需要注意)

0

"put"1""

2"text/plain"

3"tue, 26 sep 2017 07:10:15 gmt"

4"x-oss-date:tue, 26 sep 2017 07:10:15 gmt"

5"x-oss-user-agent:aliyun-sdk-js/4.10.0 chrome 60.0.3112.113 on windows 10 64-bit"

6"/chengyanzhao/aa.txt"

然後使用array的join(『\n』)方法合併成乙個字串

"put

text/plain

tue, 26 sep 2017

07:10:15 gmt

x-oss-date:tue, 26 sep 2017

07:10:15 gmt

x-oss-user-agent:aliyun-sdk-js/4.10.0 chrome 60.0.3112.113 on windows 10

64-bit

/chengyanzhao/aa.txt"

這樣authorization = 「oss 」 + accesskeyid + 「:」 + signature中的計算引數我們就有了,套入base64和hmac-sha1計算方式即可得出authorization。

3.傳送請求

另外這裡有乙個demo,是在阿里雲論壇上找到的,為了方便學習我在網盤中分享,密碼:9d54。

上傳時設定

上傳後設定

這裡使用js-oss-sdk來說明。

1.上傳時設定

阿里oss提供了多種上傳方式,但每種上傳方法都接受乙個options引數,這個引數即可設定檔案的元資料。

headers:
2.上傳後設定
// key為oss中檔案的key,也就是在oss控制台中現實的檔名。

client.copy(key, key,

})

阿里雲OSS 上傳檔案

阿里雲後台管理 api 整合教程 key 網域名稱的查詢 1 檢視上傳的檔案在哪?a 阿里雲,進入官網。然後進入管理控制台 b 左側選單欄,進入物件儲存 oss c 進入 bucket 管理頁面,點選建立的bucket 名稱 d 進入bucket 管理介面,點選左側選單 bucket屬性 選單檢視b...

阿里雲OSS上傳

這種方式相當於自動上傳,可以參考antd官網的給的例子 首先,後端會提供乙個介面,會返回一些上傳到oss需要的類似配置引數 下面的是我們後端同學給返回的引數 1 accessid,對應ossaccesskeyd 2 policy 3 signature 4 host,oss的上傳位址 下面是請求上傳...

阿里雲oss 大檔案上傳

最近公司在做工程專案,實現檔案雲儲存上傳 網上找了很久,發現很多專案都存在一些問題,但還是讓我找到了乙個成熟的專案。工程 對專案的檔案雲儲存上傳功能做出分析,找出檔案上傳的原理,對檔案的雲儲存模式深入了解。執行 檔案存放根目錄 h 這裡使用的雲儲存服務功能,所以需要在雲儲存裡面觀察檔案的大小結構 檔...