閱讀811 返回首頁    go 阿裏雲 go 技術社區[雲棲]


使用函數計算來打包下載OSS文件

需求

打包下載OSS上存儲的多個文件

方案

使用函數計算先把多個文件壓縮成一個zip,存儲到OSS上麵,返回zip文件的地址,客戶端下載此文件。

zip-oss-high

函數代碼下載zip-oss.zip

實現細節

  1. 函數運行環境的磁盤空間是有限的,采用流式下載和上傳的方式,隻在內存中緩存少量的數據。
  2. 為了加快速度,一邊生成zip文件時一邊上傳到OSS
  3. 上傳zip文件到OSS時,利用OSS分片上傳的特性,多線程並發上傳

zip-oss-low

實驗

實驗數據

# 文件數 壓縮前總大小 壓縮後總大小 執行時間
1 7 1.2MB 1.16MB 0.4s
2 57 1.06GB 1.06GB 63s

實驗步驟

  1. 在OSS上準備要打包的文件
    • 把文件放在OSS上麵一個目錄下麵
  2. 觸發函數(通過API網關)
    • 使用curl命令直接調用函數
cat <<EOF > event.json
{
  "region": "cn-shanghai",
  "bucket": "fc-test-tianlong-wu",
  "source-dir": "files/"
}
EOF

curl -v -L -o /tmp/my.zip -H "Content-Type: application/json" -d @./event.json \
{apigateway-domain}-cn-shanghai.alicloudapi.com/zip?redirect=true

最後更新:2017-07-28 23:35:31

  上一篇:go  鑫眾6603棋牌源碼架設下載含最新版遊戲大廳+手機版網站+手機端大廳+代理係統+超強後台
  下一篇:go  一分鍾看懂測力傳感器暗轉使用技巧和注意事項