Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Package and download objects as a ZIP file

Son Güncelleme:Oct 12, 2026

Object Storage Service (OSS), Function Compute ile entegre çalışarak çeşitli uygulamalar ve işlevler oluşturmanıza olanak tanır. Bu konu, birden fazla OSS nesnesini tek bir ZIP dosyasında paketleyerek yerel bilgisayarınıza indirmek için Function Compute'un nasıl kullanılacağını açıklar.

Ön koşullar

Çalışma mantığı

Özellikle çok sayıda küçük dosya olmak üzere OSS'den toplu halde birden fazla nesne indirmek yavaş ve zahmetli olabilir. Function Compute kullanarak nesneleri önce OSS üzerinde paketleyebilir, sıkıştırılmış paketi yerel bilgisayarınıza indirebilir ve ardından açabilirsiniz. Bu yöntem, daha hızlı toplu indirmeler sağlar. Function Compute kullanarak OSS nesnelerini paketleme ve indirme iş akışı aşağıdaki şekilde gösterilmektedir.压缩OSS文件

  1. Kullanıcı işlevi çağırır ve sıkıştırılacak bucket ile nesneleri belirtir.

  2. Function Compute, belirtilen nesneleri OSS'den indirir ve rastgele bir ada sahip bir ZIP paketi oluşturur.

  3. Function Compute, ZIP paketini OSS'ye yükler.

  4. Function Compute, ZIP paketinin indirme URL'sini kullanıcıya döndürür.

  5. Kullanıcı, döndürülen kalıcı indirme URL'sini kullanarak dosyayı OSS'den indirir.

Kullanım notları

  • İşlevin çalışma zamanı ortamındaki disk alanı sınırlıdır. Bu nedenle, işlev yalnızca az miktarda veriyi bellekte önbelleğe almak için hem indirme hem de yükleme işlemlerinde veri akışı kullanır.

  • İşlemi hızlandırmak amacıyla Function Compute, ZIP dosyası oluşturulurken dosyayı OSS'ye yükler.

  • ZIP dosyasını OSS'ye yüklerken işlev, parçaları birden çok iş parçacığı üzerinden eşzamanlı olarak yüklemek için OSS'nin çok parçalı yükleme özelliğini kullanır.

  • Function Compute kullanarak dosyaları sıkıştırma için maksimum işlem süresi 24 saattir. (Test verileri: Toplam boyutu 1,06 GB olan 57 nesne 63 saniyede işlenmiştir).

Yordam

Bu örnekte, China (Hangzhou) bölgesindeki examplebucket bucket'ının dir/ dizinindeki birden fazla nesnenin Function Compute kullanılarak nasıl paketleneceği ve yerel bilgisayara nasıl indirileceği açıklanmaktadır.

  1. Uygulamayı dağıtın ve genel alan adını edinin.

    ROS ile tek tıklama

    Function Compute uygulamasını tek tıklamayla dağıtmak için Resource Orchestration Service (ROS) kullanın.

    1. tek tıklamayla yapılandırma şablonu bağlantısını açın.

    2. Configure Parameters sekmesinde tüm parametreler için varsayılan ayarları koruyun ve Next: Check and Confirm öğesini tıklayın.

    3. Check and Confirm sekmesinde Create öğesini tıklayın.

      Stack Information sekmesindeki Status değeri Creating olarak görüntülenir.

    4. Yığın Status durumu Create_Success olarak değiştiğinde, genel alan adını bulmak için Outputs sekmesini tıklayın.

    Serverless Application Center ile tek tıklama

    1. start-zip-oss uygulama şablonunu Serverless Application Center üzerinden dağıtın.

      Create Application sayfasında uygulama şablonu start-zip-oss ve dağıtım türü Directly Deploy olarak ayarlanır. Aşağıdaki temel parametreleri yapılandırın:

      • Application Name: start-zip-oss-obvr

      • Role Name: AliyunFCServerlessDevsRole. Eklenen ilkeler AliyunOSSReadOnlyAccess ve AliyunFCFullAccess içerir.

      • Service Status: Function Compute ve Object Storage Service (OSS) her ikisi de etkinleştirilmiştir.

      • Advanced Settings: China (Hangzhou) bölgesini seçin. Hizmet adını zip-oss, işlev adını zip-oss-func ve RAM rolü ARN'sini AliyunFcDefaultRole (eklenen ilkeler: AliyunOSSFullAccess ve AliyunFCDefaultRolePolicy) olarak ayarlayın.

      Yapılandırmayı tamamladıktan sonra Create and Deploy Default Environment öğesini tıklayın.

    2. Genel alan adını edinin.

      1. Result sekmesini tıklayın.

      2. Tetikleyiciler alanında genel alan adını (urlInternet) edinin.

        fc zip oss service.
          service:
            role: acs:ram::1379186349xxx:role/aliyunfcdefaultrole
            internetAccess: true
            name: zip-oss
            description: zip oss sample
          function:
            handler: main.main_handler
            initializationTimeout: 3
            memorySize: 3072
            instanceType: e1
            name: zip-oss-func
            runtime: python2.7
            description: This is default function description by fc-deploy component
            timeout: 1800
            instanceConcurrency: 1
          region: cn-hangzhou
          triggers:
            - urlInternet: https://zip-oss-func-zip-oss-ayouyexxx.cn-hangzhou.fcapp.run
              name: http-test
              type: http
              config:
                methods:
                  - GET
                  - POST
                  - PUT
                authType: anonymous

    Serverless Devs CLI ile manuel dağıtım

    1. Serverless Devs'i yükleyin.

      npm install -g @serverless-devs/s

      Yüklemeyi doğrulayın.

      s -v

      Aşağıdaki çıktı başarılı bir yüklemeyi gösterir:

      @serverless-devs/s: 2.1.1, s-home: /root/.s, linux-x64, node-v14.19.3
    2. Serverless Devs'i yapılandırın.

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

      Aşağıdaki tabloda parametreler açıklanmaktadır.


      Parameter


      Description


      --AccessKeyID


      Function Compute'a erişmek için kullanılan AccessKey ID.


      --AccessKeySecret


      Function Compute'a erişmek için kullanılan AccessKey Secret.


      --access


      Kimlik bilgileri için özel bir takma ad.

    3. start-zip-oss uygulama şablonunu dağıtın.

      1. Projeyi başlatın.

      2. s init start-zip-oss -d start-zip-oss
      3. Aşağıdaki örneklere göre yapılandırma öğeleri için değerler belirtin.


      4. Parameter


        Example


        Uygulamanın bulunduğu bölge


        cn-hangzhou


        Uygulamanın ait olduğu Function Compute hizmeti


        start-zip-oss


        Uygulamanın işlev adı


        zip-oss-func


        Uygulamanın ait olduğu Function Compute hizmeti için yapılandırılan RAM rolünün ARN'si


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

      5. Proje dizinine gidin.

      6. cd start-zip-oss
      7. Projeyi dağıtın.

      8. s deploy -y
      9. Çıktıdan system_url değerini kaydedin.

      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. Sunucunuzda veya bir ECS örneğinde aşağıdaki komutu çalıştırarak bir event.json dosyası oluşturun. Dosyada, bucket adını ve indirilecek nesneleri içeren dizini belirtin.

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

    source-dir parametresi bir bucket içindeki bir dizin olmalıdır; kök dizin desteklenmez.

  3. Aşağıdaki komut örnek bir istektir.

    curl -v -L -o  oss.zip -d @./event.json https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run
    • oss.zip: İndirilen ZIP paketinin kaydedildiği yerel yol.

      Not

      Yerleşik Windows sıkıştırma açma aracı başarısız olursa 7-Zip veya WinRAR gibi üçüncü taraf bir araç kullanın.

    • https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run: Projeyi dağıttığınızda döndürülen system_url.

    Bunu anonim yerine kimliği doğrulanmış bir HTTP işlevi olarak çağırmak için aşağıdaki SDK'lardan birini kullanın:

SSS

Filigran ekleme

Hayır. Ancak, OSS'deki nesnelere aşağıdaki yöntemleri kullanarak metin veya resim filigranı ekleyebilirsiniz:

  • public-read veya public-read-write izinlerine sahip nesneler için

    Nesne URL'sine filigran parametreleri ekleyin. Daha fazla bilgi için bkz. Resim filigranları.

  • private izinlere sahip nesneler için

    SDK'ya resim işleme parametrelerini veya resim stili parametrelerini dahil ederek filigran ekleyin. Daha fazla bilgi için bkz. SDK'lar kullanarak resimleri işleme.

Süre sınırlı indirme URL'leri

Hayır. Son kullanma tarihi içeren bir URL oluşturmak için Expires parametresini içeren imzalı bir URL oluşturmanız gerekir. Daha fazla bilgi için bkz. Nesne URL'lerini kullanma.

İlgili konular