日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

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

更新時間:

對象存儲OSS支持函數計算服務,您可以借助函數計算快速構建任何類型的應用和函數,本文將介紹如何使用函數計算將對象存儲OSS上多個文件(Object)打包下載到本地。

前提條件

  • 已開通函數計算。

    您可以在函數計算產品詳情頁開通函數計算。

  • 已授權函數計算訪問OSS。

    具體步驟,請參見授予函數計算訪問其他云服務的權限。

  • OSS創建的bucket和應用函數需在同一個 region。

  • 已在某個Bucket的指定目錄下上傳多個文件。本教程以在華東1(杭州)地域的examplebucket下的dir目錄中上傳多個文件為例。具體步驟,請參見簡單上傳。

方案概述

當您從OSS中批量下載Object時可能會遇到批量下載不方便、小文件較多時下載緩慢等問題。通過調用函數計算,可以將OSS上的Object先打包,然后將壓縮包下載到本地后再解壓,實現快速下載批量文件的目的。使用函數計算打包下載OSS文件的工作流程如下圖所示。壓縮OSS文件

  1. 用戶調用函數,并指定存儲空間及待壓縮的文件。

  2. 函數計算從OSS中下載指定文件,并生成一個隨機名稱的ZIP壓縮包。

  3. 函數計算將壓縮包上傳至OSS。

  4. 函數計算將ZIP包的下載地址返回給用戶。

  5. 用戶使用返回的長期有效的下載地址從OSS中下載文件。

使用說明

  • 函數運行環境的磁盤空間是有限的,所以采用流式下載和上傳的方式,只在內存中緩存少量的數據。

  • 為了加快速度,函數計算在生成ZIP文件的同時將文件上傳到OSS。

  • 上傳ZIP文件到OSS時,利用OSS分片上傳的特性,多線程并發上傳。

  • 使用函數計算壓縮文件時,最大處理時間是24小時(實驗數據為57個文件,總大小1.06 GB,處理時間為63s)。

操作步驟

以下以通過函數計算將華東1(杭州)地域examplebucket中dir/目錄下的多個文件打包下載到本地為例。

  1. 部署應用并獲取對外公網域名。

    使用資源編排ROS一鍵部署

    您可以使用一鍵部署通過ROS快速部署函數計算應用。部署完成后,單擊輸出頁簽獲取對外公網域名。

    使用Serverless應用中心一鍵部署

    1. 通過Serverless應用中心一鍵部署應用模板start-zip-oss。

      其中,部署類型選擇直接部署,應用模板所在地域與Bucket所在地域保持一致,其他選項保留默認配置。配置詳情如下圖所示。1

    2. 獲取對外公網域名。

      1. 單擊結果頁簽。

      2. 在triggers字段獲取對外公網域名(urlInternet)。

        2

    使用Serverless Devs命令行工具手動部署

    1. 安裝Serverless Devs。

      curl -o- -L http://cli.so/install.sh | bash

      驗證是否安裝成功。

      s -v

      成功安裝后的執行結果:

      @serverless-devs/s: 2.1.1, s-home: /root/.s, linux-x64, node-v14.19.3
    2. 配置Serverless Devs。

      s config add --AccessKeyID LTAI******** --AccessKeySecret  KZo1******** --access fc-access

      參數說明如下:

      參數

      說明

      --AccessKeyID

      訪問函數計算服務的AccessKey ID。

      --AccessKeySecret

      訪問函數計算服務的AccessKey Secret。

      --Access

      自定義密鑰別名。

    3. 部署應用模板start-zip-oss。

      1. 初始化項目。

      2. s init start-zip-oss -d start-zip-oss
      3. 參考以下示例值完成各個配置項。

      4. 配置項

        示例值

        應用所在的地域

        cn-hangzhou

        應用所屬的函數計算服務

        start-zip-oss

        應用的函數名稱

        zip-oss-func

        應用所屬的函數計算服務配置的RAM角色ARN

        acs:ram::137918634953****:role/test-role

      5. 進入項目。

      6. cd start-zip-oss
      7. 部署項目。

      8. s deploy -y
      9. 記錄輸出結果中返回的system_url。

      10. fc-zip-oss-service:
          region:   cn-hangzhou
          service:
            name: start-zip-oss
          function:
            name:       zip-oss-func
            runtime:    python2.7
            handler:    main.main_handler
            memorySize: 3072
            timeout:    1800
          url:
            system_url: https://zip-oss-func-start-zip-oss-ayouye****.cn-hangzhou.fcapp.run
          triggers:
            -
              type: http
              name: http-test
  2. 在您自己的服務器或阿里云ECS上執行以下命令生成event.json文件,并在文件中指定Bucket名稱以及待下載的文件所在目錄。

    cat <<EOF > event.json
    {
      "bucket": "examplebucket",
      "source-dir": "dir/"
    }
    EOF
    說明

    source-dir僅支持指定為Bucket下的某個目錄,不支持指定為Bucket根目錄。

  3. 請求示例如下。

    curl -v -L -o  oss.zip -d @./event.json https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run
    • /test/oss.zip:用于存放dir/目錄下所有文件的本地路徑。

    • https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run:表示start-zip-oss應用的對外公網域名。

    說明

    如果您需要將以上示例中的匿名非鑒權HTTP函數修改為鑒權HTTP函數,您可以通過以下任意一種語言的SDK進行調用:

常見問題

是否支持通過函數計算打包下載文件時對文件添加水印?

不支持。您可以通過以下方式對存儲在OSS中文件增加水印文字或水印圖片:

  • 對于公共讀或者公共讀寫權限的文件

    在文件URL中添加水印參數。具體操作,請參見圖片水印。

  • 對私有權限的文件

    在SDK中添加圖片處理參數或圖片樣式參數的方式添加水印。具體操作,請參見使用SDK處理圖片。

通過函數計算打包下載文件時是否支持生成帶有時效性的文件下載地址?

不支持。如果您希望文件URL包含過期時間,您需要在URL中攜帶Expires參數。具體操作,請參見使用文件URL。

更多參考