可通過客戶端瀏覽器的表單(form),跳過中間服務(wù)器,直接將文件上傳到FSS云存儲,上傳效率更高效。特別地,文中請求參數(shù)放在 HTTP/HTTPS body 中傳遞,請確保您上傳表單格式符合 RFC 1867 協(xié)議規(guī)范。
1curl -X POST \2 http://fss-my.vhostgo.com/<bucket> \3 -F "Authorization: WESTYUN <Operator>:<Signature>" \4 -F "Date: <Wed, 29 Oct 2014 11:26:58 GMT>"\5 -F "Policy:<policy>"6 # 其他可選參數(shù)...
域名
fss-<區(qū)域>.vhostgo.combucket、path
<> 是參數(shù)內(nèi)容,是需要用戶填寫的,填寫時,把 <> 去掉。
bucket,是創(chuàng)建的桶名;
Authorization
policy,詳見認證鑒權(quán)。文件大小超過 100M 后,建議使用大文件上傳;移動端或者弱網(wǎng)環(huán)境上傳,推薦使用 REST API 上傳文件。
上傳參數(shù)
| 參數(shù)(不區(qū)分大小寫) | 必選 | 類型 | 說明 |
|---|---|---|---|
| save-key | 是 |
string | 文件保存路徑,可用占位符,見 路徑設(shè)置 |
| expiration | 是 |
string | 請求的過期時間,UNIX UTC 時間戳,單位秒。不能超過 30 分鐘 |
| date | 是 |
string | 請求的日期時間,等效于簽名認證中的 Date 如 Wed, 22 Apr 2020 02:26:58 GMT 或者 2020-04-22 10:26:58 |
| return-url | 否 | string | 同步通知 URL,見 通知規(guī)則 |
| notify-url | 否 | string | 異步通知 URL,見 通知規(guī)則 |
| Content-MD5 | 否 | string | 上傳文件的 MD5 值,如果請求中文件太大計算 MD5 不方便,可以為空 |
| Content-Type | 否 | string | 文件類型,默認使用文件擴展名作為文件類型 |
| Content-Secret | 否 | string | 文件密鑰,用于保護文件,防止文件被直接訪問,見Content-Secret 參數(shù)說明 |
| allow-file-type | 否 | string | 允許上傳的文件擴展名,以 , 分隔。如 jpg,jpeg,png |
| content-length-range | 否 | string | 文件大小限制,格式:min,max,單位:字節(jié)。如 102400,1024000,表示允許上傳 100Kb~1Mb 的文件 |
| x-gmkerl-thumb | 否 | string | 圖片預(yù)處理參數(shù),見圖片處理 |
| x-west-meta-ttl | 否 | string | 文件元信息, 指定文件的生存時間,單位天,最大支持180天 |
| x-west-overwrite | 否 | string | 上傳文件時覆蓋已存在文件,默認為false |
| b64encoded | 否 | string | 對通過 Base64 編碼上傳的文件進行 Base64 解碼,值為 on |
| ext-param | 否 | string | 額外參數(shù),見 ext-param |
注
響應(yīng)信息
return-url 參數(shù)說明
| 參數(shù) | 說明 |
|---|---|
| code | 狀態(tài)碼,200 表示上傳成功 |
| message | URL encoding 的描述信息,ok 表示上傳成功,其他的表示錯誤信息 |
| url | URL encoding 的文件保存路徑 |
| time | UNIX UTC 時間戳,單位秒 |
| sign | 簽名,詳見回調(diào)簽名 |
| ext-param | 額外參數(shù),form表單上傳的ext-param參數(shù) |
notify-url 參數(shù)說明
save-key 支持的設(shè)置類型:
| 類型 | 格式 | 說明 |
|---|---|---|
| 絕對值 | String | 指定具體的路徑,如: /path/to/file.txt |
| 時間類 | {year} {mon} {day} {hour} {min} {sec} | 日期、時間相關(guān)內(nèi)容(UTC 時間) |
| md5類 | {filemd5} | 文件的 md5 值 |
| 隨機類 | {random} {random32} | 16 位或 32 位隨機字符和數(shù)字 |
| 文件名 | {filename} {suffix} {.suffix} | 上傳文件的文件名及擴展名 |
舉例說明
xxxxxxxxxx41上傳文件名:west.jpg2UTC 時間:2023-01-01 8:8:83save-key:/{year}/{mon}/{day}/west_{random32}{.suffix}4保存路徑為:/2023/01/01/west_b92c9cc21ce6a88ea696705c88b57c3f.jpg
xxxxxxxxxx41上傳文件名:west.jpg2UTC 時間:2023-01-01 8:8:83save-key:/{year}/{mon}/{day}/{hour}_{min}_{sec}_{filename}{.suffix}4保存路徑為:/2023/01/01/8_8_8_west.jpg
當(dāng)使用 return-url 或 notify-url 參數(shù)發(fā)送返回信息或回調(diào)信息時,結(jié)果信息(詳見通知規(guī)則)僅包含F(xiàn)SS云儲存指定的內(nèi)容,無法回傳用戶自定義的內(nèi)容。如果需要回傳自定義的內(nèi)容,可以指定 ext-param 參數(shù)。
sign 算法
sign 是根據(jù) code、url、time 拼接后進行 MD5 處理得到。拼接時需注意 URL 的編碼與解碼問題
例如,code:200
url:'westtest/2023/5/27/upload_6Wf5fyz9uEkveHoSEzf3A7265U1IV6yp.jpg'
time:1434539183
拼接后的字符串是 200westtest%2F2023%2F5%2F26%2Fupload_00vI6jK3i4i661g8bUwr3DYXrs1qJ7CB.jpg1434539183 sign 是 'c631a75699eb510ad116543cfee07a19'
請在使用前,將Action的URL改為自己的桶URL,且將Authorization設(shè)置為正確的權(quán)限認證代碼,建議將type為text的表單類型改為hidden
xxxxxxxxxx111<form action="http://fss-my.vhostgo.com/westtest" method="post" enctype="multipart/form-data">2date:<input type="text" name="date" value="2023-05-30 09:16:52">3Authorization:<input type="text" name="Authorization" value="WESTYUN westtest:xxxxxxx">4policy:<input type="text" name="policy" value="eyJzYXZlLWtleSI6Ii97e9ey5zdWZmaXh9IiwiZXhwaXJhdGlvbiI6MTgwMH0=">5save-key:<input type="text" name="save-key" value="{year}/{mon}/{day}/west_{random32}{.suffix}">6expiration:<input type="text" name="expiration" value="1800">7content-length-range:<input type="text" name="content-length-range" value="1024,1024000">8return-url:<input type="text" name="return-url" value="http://west.cn">9<input type="file" name="photo">10<button type="submit">提交</button>11</form>