Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:List files (Browser.js SDK)

Son Güncelleme:Oct 01, 2026

Bu konu, belirtilen bir paketteki tüm dosyaların (Nesneler) nasıl listeleneceğini ve belirtilen bir dizindeki dosyalar ile alt dizinlerin nasıl listeleneceğini açıklar.

Kullanım notları

  • Webpack ve Browserify gibi paketleme araçlarını kullanırken, npm install ali-oss komutunu çalıştırarak Browser.js için OSS SDK'yı yükleyin.

  • Bir tarayıcıdan bir OSS paketine erişmek istiyorsanız ancak paket için CORS kuralları yapılandırılmamışsa tarayıcı isteği reddeder. Bu nedenle, bir pakete tarayıcıdan erişmek istiyorsanız paket için CORS kurallarını yapılandırmanız gerekir. Daha fazla bilgi için bkz. Kurulum.

  • Çoğu durumda Browser.js için OSS SDK tarayıcılarda kullanılır. AccessKey çiftinizin açığa çıkmasını önlemek için OSS'e erişmek üzere Security Token Service'ten (STS) alınan geçici erişim kimlik bilgilerini kullanmanızı öneririz.

    Geçici erişim kimlik bilgileri bir AccessKey çiftinden ve bir güvenlik belirtecinden oluşur. AccessKey çifti bir AccessKey ID ve bir AccessKey Secret'tan oluşur. Geçici erişim kimlik bilgilerinin nasıl alınacağı hakkında daha fazla bilgi için bkz. Geçici erişim yetkilendirmesi için STS kullanma.

Bir paketteki tüm dosyaları listeleme

Mevcut paketteki tüm dosyaları listelemek için list işlevini kullanabilirsiniz:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
  </head>
  <body>
    <script>      
      const client = new OSS({
        // Set yourRegion to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set yourRegion to oss-cn-hangzhou.
        region: "yourRegion",
        authorizationV4: true,
        // The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from Security Token Service (STS).
        accessKeyId: 'yourAccessKeyId',
        accessKeySecret: 'yourAccessKeySecret',
        // The security token (SecurityToken) obtained from STS.
        stsToken: 'yourSecurityToken',
        // Specify the bucket name. For example, examplebucket.
        bucket: "examplebucket",
      });

      async function list(dir) {
        try {
          // By default, a maximum of 1,000 files are returned.
          let result = await client.list();
          console.log(result);

          // Continue to obtain the file list starting from the file that follows the last file read in the previous list operation.
          if (result.isTruncated) {
            result = await client.list({ marker: result.nextMarker });
          }

          // List files that have the prefix 'ex'.
          result = await client.list({
            prefix: "ex",
          });
          console.log(result);

          // List files that have the prefix 'ex' and whose names come after 'example' in alphabetical order.
          result = await client.list({
            prefix: "ex",
            marker: "example",
          });
          console.log(result);
        } catch (e) {
          console.log(e);
        }
      }

      list();
    </script>
  </body>
</html>
          

Belirtilen bir dizindeki dosyaları ve alt dizinleri listeleme

OSS'te dizin kavramı bulunmaz. Tüm öğeler Nesne olarak depolanır. Dizin oluşturmak için adı eğik çizgi (/) ile biten 0 KB'lık bir Nesne oluşturursunuz. Bu Nesne yüklenebilir ve indirilebilir. OSS konsolu, eğik çizgi (/) ile biten Nesneleri dizin olarak görüntüler. Dizin işlevselliğini simüle etmek için Delimiter ve Prefix parametrelerini kullanabilirsiniz:

  • Prefix değerini bir dizin adına ayarlarsanız bu önekle başlayan tüm dosyaları listeleyebilirsiniz. Bu işlem, ilgili dizin içindeki tüm dosyaları ve alt dizinleri yinelemeli olarak listeler.

  • Delimiter değerini de eğik çizgiye (/) ayarlarsanız yanıt yalnızca o dizindeki dosyaları ve alt dizinleri listeler. Alt dizinlerin adları SubDir bölümünde döndürülür. Bu alt dizinler içindeki dosyalar ve dizinler listelenmez.

Bir paketin aşağıdaki dosyaları içerdiğini varsayalım:

foo/x
foo/y
foo/bar/a
foo/bar/b
foo/hello/C/1
foo/hello/C/2
...
foo/hello/C/9999
            

Belirtilen bir dizindeki dosyaları ve alt dizinleri listelemek için listDir işlevini kullanabilirsiniz:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
  </head>
  <body>
    <script>
      const client = new OSS({
        // Set yourRegion to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set yourRegion to oss-cn-hangzhou.
        region: 'yourRegion',
        authorizationV4: true,
        // The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from STS.
        accessKeyId: 'yourAccessKeyId',
        accessKeySecret: 'yourAccessKeySecret',
        // The security token (SecurityToken) obtained from STS.
        stsToken: 'yourSecurityToken',
        // Specify the bucket name. For example, examplebucket.
        bucket: "examplebucket",
      });

      async function listDir(dir) {
        try {
          let result = await client.list({
            prefix: dir,
            // Set the delimiter for directories to a forward slash (/).
            delimiter: "/",
          });

          result.prefixes.forEach(function (subDir) {
            console.log("SubDir: %s", subDir);
          });
          result.objects.forEach(function (obj) {
            console.log("Object: %s", obj.name);
          });
        } catch (e) {
          console.log(e);
        }
      }

      listDir();
    </script>
  </body>
</html>

Dönen dosya listesi aşağıdaki gibidir:

> listDir('foo/')
=> SubDir: foo/bar/
   SubDir: foo/hello/
   Object: foo/x
   Object: foo/y

> listDir('foo/bar/')
=> Object: foo/bar/a
   Object: foo/bar/b

> listDir('foo/hello/C/')
=> Object: foo/hello/C/1
   Object: foo/hello/C/2
   ...
   Object: foo/hello/C/9999            

İlgili konular

API işlemi hakkında daha fazla bilgi için bkz. GetBucket (ListObjects).