すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:OSS SDK for PHPを使用したオブジェクトのリスト

最終更新日:Mar 13, 2024

このトピックでは、すべてのオブジェクト、特定の数のオブジェクト、および名前に特定のプレフィックスが含まれるオブジェクトをバケットに一覧表示する方法について説明します。

使用上の注意

  • このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba CloudサービスからOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

  • このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSecurity Token Service (STS) を使用してOSSClientインスタンスを作成する場合は、「OSSClientインスタンスの作成」をご参照ください。

  • オブジェクトを一覧表示するには、oss:ListObjects権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。

単純なリストを使用してオブジェクトをリストする

listObjectsまたはlistObjectsV2操作を呼び出して、特定のバケットのルートディレクトリにあるオブジェクトを一覧表示できます。 ルートディレクトリ内のサブディレクトリおよびサブディレクトリ内のオブジェクトはリストされません。

  • listObjects操作を呼び出してオブジェクトをリストする

    次のサンプルコードでは、listObjects操作を呼び出して、ルートディレクトリのサブディレクトリとサブディレクトリのオブジェクトを一覧表示せずに、examplebucketという名前のバケットのルートディレクトリのオブジェクトを一覧表示する方法の例を示します。 デフォルトでは、100のオブジェクトが一度に一覧表示されます。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\Core\OssExceptionを使用します。try {
        // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
        $provider = new EnvironmentVariableCredentialsProvider();
        // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
        $endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // バケットの名前を指定します。 例: examplebucket. 
        $bucket= "examplebucket";
        $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、        
        );
        $ossClient = new OssClient($config);
        $listObjectInfo = $ossClient->listObjects($bucket);
        printf (「バケット名: % s」) 。 "\n",$listObjectInfo->getBucketName();
        printf("Prefix: % s") 。 "\n",$listObjectInfo->getPrefix();
        printf("Marker: % s") 。 "\n",$listObjectInfo->getMarker();
        printf (「次のマーカー: % s」) 。 "\n",$listObjectInfo->getNextMarker();
        printf (「最大キー: % s」) 。 "\n",$listObjectInfo->getMaxKeys();
        printf("Delimiter: % s") 。 "\n",$listObjectInfo->getDelimiter();
        printf("Is Truncated: % s") 。 "\n",$listObjectInfo->getIsTruncated();
        $objectList = $listObjectInfo->getObjectList();
        $prefixList = $listObjectInfo->getPrefixList();
        if (!empty($objectList)) {
            print("objectList:\n");
            foreach ($objectList as $objectInfo) {
                printf("オブジェクト名: % s") 。 "\n",$objectInfo->getKey();
                printf (「オブジェクトサイズ: % s」) 。 "\n",$objectInfo->getSize();
                printf("オブジェクトタイプ: % s") 。 "\n",$objectInfo->getType();
                printf("Object ETag: % s") 。 "\n",$objectInfo->getETag();
                printf("Object Last Modified: % s") 。 "\n",$objectInfo->getLastModified());
                printf("Object Storage Class: % s") 。 "\n",$objectInfo->getStorageClass());
    
                if ($objectInfo->getRestoreInfo()){
                    printf("Restore Info: % s") 。 "\n",$objectInfo->getRestoreInfo();
                }
    
                if($objectInfo->getOwner()){
                    printf("Owner Id:".$objectInfo->getOwner()->getId() . "\n");
                    printf("所有者名:".$objectInfo->getOwner()->getDisplayName() . "\n");
                }
            }
        }
        if (!empty($prefixList)) {
            print("prefixList: \n");
            foreach ($prefixList as $prefixInfo) {
                printf("Common Prefix:% s\n",$prefixInfo->getPrefix());
            }
        }
    } catch (OssException $e) {
        printf($e->getMessage()) 。 "\n");
        戻ります。}
    
  • listObjectsV2操作を呼び出してオブジェクトをリストする

    次のサンプルコードでは、listObjectsV2操作を呼び出して、ルートディレクトリのサブディレクトリとサブディレクトリのオブジェクトを一覧表示せずに、examplebucketという名前のバケットのルートディレクトリのオブジェクトを一覧表示する方法の例を示します。 デフォルトでは、100のオブジェクトが一度に一覧表示されます。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\Core\OssExceptionを使用します。try {
        // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
        $provider = new EnvironmentVariableCredentialsProvider();
        // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
        $endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
        // バケットの名前を指定します。 例: examplebucket. 
        $bucket= "examplebucket";
        $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、        
        );
        $ossClient = new OssClient($config);
        $listObjectInfo = $ossClient->listObjectsV2($bucket);
        printf (「バケット名: % s」) 。 "\n",$listObjectInfo->getBucketName();
        printf("Prefix: % s") 。 "\n",$listObjectInfo->getPrefix();
        printf (「次の継続トークン: % s」) 。 "\n",$listObjectInfo->getNextContinuationToken();
        printf (「継続トークン: % s」) 。 "\n",$listObjectInfo->getContinuationToken();
        printf (「最大キー: % s」) 。 "\n",$listObjectInfo->getMaxKeys();
        printf("Key Count: % s") 。 "\n",$listObjectInfo->getKeyCount();
        printf("Delimiter: % s") 。 "\n",$listObjectInfo->getDelimiter();
        printf("Is Truncated: % s") 。 "\n",$listObjectInfo->getIsTruncated();
        printf("Start After: % s") 。 "\n",$listObjectInfo->getStartAfter();
        $objectList = $listObjectInfo->getObjectList(); 
        $prefixList = $listObjectInfo->getPrefixList();
        if (!empty($objectList)) {
            print("objectList:\n");
            foreach ($objectList as $objectInfo) {
                printf("オブジェクト名: % s") 。 "\n",$objectInfo->getKey();
                printf (「オブジェクトサイズ: % s」) 。 "\n",$objectInfo->getSize();
                printf("オブジェクトタイプ: % s") 。 "\n",$objectInfo->getType();
                printf("Object ETag: % s") 。 "\n",$objectInfo->getETag();
                printf("Object Last Modified: % s") 。 "\n",$objectInfo->getLastModified());
                printf("Object Storage Class: % s") 。 "\n",$objectInfo->getStorageClass());
    
                if ($objectInfo->getRestoreInfo()){
                    printf("Restore Info: % s") 。 "\n",$objectInfo->getRestoreInfo();
                }
    
                if($objectInfo->getOwner()){
                    printf("Owner Id:".$objectInfo->getOwner()->getId() . "\n");
                    printf("所有者名:".$objectInfo->getOwner()->getDisplayName() . "\n");
                }
            }
        }
        if (!empty($prefixList)) {
            print("prefixList: \n");
            foreach ($prefixList as $prefixInfo) {
                printf("Common Prefix:% s\n",$prefixInfo->getPrefix());
            }
        }
    } catch (OssException $e) {
        printf($e->getMessage()) 。 "\n");
        戻ります。}
    
    

特定の数のオブジェクトを一覧表示する

listObjectsまたはlistObjectsV2操作を呼び出して、バケット内の特定の数のオブジェクトを一覧表示できます。

  • listObjects操作を呼び出して、特定の数のオブジェクトを一覧表示する

    次のサンプルコードは、listObjects操作を呼び出してexamplebucketバケット内の200のオブジェクトを一覧表示する方法の例を示しています。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // 一度に最大200個のオブジェクトを一覧表示できるように指定します。 
    $maxkeys = 200;
    $options=配列 (
      'max-keys' => $maxkeys,
    );
    try {
      $listObjectInfo = $ossClient->listObjects($bucket、$options);
    } catch (OssException $e) {
      printf($e->getMessage()) 。 "\n");
        戻ります。}
    
    $objectList = $listObjectInfo->getObjectList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
          print($objectInfo->getKey()) 。 "\n");
      }
    }
  • listObjectsV2操作を呼び出して、特定の数のオブジェクトを一覧表示する

    次のサンプルコードでは、listObjectsV2操作を呼び出してexamplebucketバケット内の200のオブジェクトを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // 一度に最大200個のオブジェクトを一覧表示できるように指定します。 
    $maxkeys = 200;
    $options=配列 (
      'max-keys' => $maxkeys,
    );
    try {
      $listObjectInfo = $ossClient->listObjectsV2($bucket、$options);
    } catch (OssException $e) {
      printf($e->getMessage()) 。 "\n");
        戻ります。}
    
    $objectList = $listObjectInfo->getObjectList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
          print($objectInfo->getKey()) 。 "\n");
      }
    }

指定されたプレフィックスを名前に含むオブジェクトを一覧表示する

listObjectsまたはlistObjectsV2操作を呼び出して、バケット内の特定のプレフィックスを名前に含むオブジェクトを一覧表示できます。

  • listObjects操作を呼び出して、名前に特定のプレフィックスが含まれるオブジェクトを一覧表示する

    次のサンプルコードでは、listObjects操作を呼び出して、examplebucketバケット内のdirプレフィックスを名前に含むオブジェクトを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // プレフィックスをdirに設定します。 
    $prefix = 'dir/';
    $options=配列 (
      'prefix' => $プレフィックス、);
    try {
      $listObjectInfo = $ossClient->listObjects($bucket、$options);
    } catch (OssException $e) {
      printf($e->getMessage()) 。 "\n");
        戻ります。}
    
    $objectList = $listObjectInfo->getObjectList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
          print($objectInfo->getKey()) 。 "\n");
      }
    }
  • listObjectsV2操作を呼び出して、名前に特定のプレフィックスを含むオブジェクトを一覧表示する

    次のサンプルコードでは、listObjectsV2操作を呼び出して、examplebucketバケット内のdirプレフィックスを名前に含むオブジェクトを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // プレフィックスをdirに設定します。 
    $prefix = 'dir/';
    $options=配列 (
      'prefix' => $プレフィックス、);
    try {
      $listObjectInfo = $ossClient->listObjectsV2($bucket、$options);
    } catch (OssException $e) {
      printf($e->getMessage()) 。 "\n");
        戻ります。}
    
    $objectList = $listObjectInfo->getObjectList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
          print($objectInfo->getKey()) 。 "\n");
      }
    }

特定のオブジェクトの後に名前がアルファベット順にあるオブジェクトをリストする

listObjectsまたはlistObjectsV2操作を呼び出して、バケット内の特定のオブジェクトの後に名前がアルファベット順であるオブジェクトを一覧表示できます。

  • listObjects操作を呼び出して、特定のオブジェクトの後に名前がアルファベット順であるオブジェクトを一覧表示する

    次のサンプルコードは、listObjects操作を呼び出して、examplebucketバケットのtest.txtオブジェクトの後に名前がアルファベット順に表示されるオブジェクトを一覧表示する方法の例を示しています。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // markerパラメーターを指定します。 例: test.txt。 markerパラメーターで指定されたオブジェクトの後にアルファベット順に名前が表示されます。 
    $marker = "test.txt";
    $options=配列 (
      OssClient::OSS_MARKER =>$ marker
    );
    try {
      $listObjectInfo = $ossClient->listObjects($bucket、$options);
    } catch (OssException $e) {
      printf($e->getMessage()) 。 "\n");
        戻ります。}
    
    $objectList = $listObjectInfo->getObjectList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
          print($objectInfo->getKey()) 。 "\n");
      }
    }
  • listObjectsV2操作を呼び出して、特定のオブジェクトの後に名前がアルファベット順であるオブジェクトをリストします。

    次のサンプルコードは、listObjectsV2操作を呼び出して、examplebucketバケット内のtest.txtオブジェクトの後に名前がアルファベット順に表示されるオブジェクトを一覧表示する方法の例を示しています。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // startAfterパラメーターを指定します。 例: test.txt。 startAfterパラメーターで指定されたオブジェクトのアルファベット順の後に名前が表示されます。 
    $startAfter = "test.txt";
    $options=配列 (
      OssClient::OSS_START_AFTER =>$ startAfter
    );
    try {
      $listObjectInfo = $ossClient->listObjectsV2($bucket、$options);
    } catch (OssException $e) {
      printf($e->getMessage()) 。 "\n");
        戻ります。}
    
    $objectList = $listObjectInfo->getObjectList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
          print($objectInfo->getKey()) 。 "\n");
      }
    }

ページですべてのオブジェクトを一覧表示

listObjectsまたはlistObjectsV2操作を呼び出して、バケット内のすべてのオブジェクトをページごとに一覧表示できます。 maxKeysパラメーターを設定して、各ページに一覧表示できるオブジェクトの最大数を指定できます。

  • listObjects操作を呼び出してページごとにすべてのオブジェクトを一覧表示する

    次のサンプルコードでは、listObjects操作を呼び出して、examplebucketバケット内のすべてのオブジェクトをページごとに一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    $options=配列 (
        // 各ページに最大200個のオブジェクトがリストされるように指定します。 
        OssClient::OSS_MAX_KEYS=>200
    );
    do {
        $result = $ossClient->listObjects($bucket,$options);
        $objectList = $result->getObjectList();
        print("objectList:\n");
        foreach ($objectList as $objectInfo) {
            print($objectInfo->getKey()) 。 "\n");
        }
        $options[OssClient::OSS_MARKER] = $result->getNextMarker();
    } while($result->getIsTruncated() === 'true'); 
  • listObjectsV2操作を呼び出して、ページごとにすべてのオブジェクトを一覧表示する

    次のサンプルコードでは、listObjectsV2操作を呼び出して、examplebucketバケット内のすべてのオブジェクトをページごとに一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    $options=配列 (
        // 各ページに最大200個のオブジェクトがリストされるように指定します。 
        OssClient::OSS_MAX_KEYS=>200
    );
    do {
        $result = $ossClient->listObjectsV2($bucket、$options);
        $objectList = $result->getObjectList();
        print("objectList:\n");
        foreach ($objectList as $objectInfo) {
            print($objectInfo->getKey()) 。 "\n");
        }
        $options[OssClient::OSS_CONTINUATION_TOKEN] = $result->getNextContinuationToken();
    } while($result->getIsTruncated() === 'true'); 

名前に特定のプレフィックスが含まれるオブジェクトをページごとにリストする

listObjectsまたはlistObjectsV2操作を呼び出して、バケット内の特定のプレフィックスを名前に含むオブジェクトをページごとに一覧表示できます。

  • listObjects操作を呼び出して、名前に特定のプレフィックスが含まれるオブジェクトをページごとに一覧表示する

    次のサンプルコードでは、listObjects操作を呼び出して、名前にdirプレフィックスが含まれているオブジェクトをexamplebucketのページごとに一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // 各ページに最大100個のオブジェクトを一覧表示できるように指定します。 
    $maxKeys = 100;
    // プレフィックスを指定します。 例: dir。 
    $prefix = 'dir/';
    $options=配列 (
        OssClient::OSS_MAX_KEYS =>$ maxKeys、
        OssClient::OSS_PREFIX =>$ prefix
    );
    do {
        $result = $ossClient->listObjects($bucket,$options);
        $objectList = $result->getObjectList();
        print("objectList:\n");
        foreach ($objectList as $objectInfo) {
            print($objectInfo->getKey()) 。 "\n");
        }
        $options[OssClient::OSS_MARKER] = $result->getNextMarker();
    } while($result->getIsTruncated() === 'true'); 
  • listObjectsV2操作を呼び出して、名前に特定のプレフィックスを含むオブジェクトをページごとに一覧表示する

    次のサンプルコードでは、listObjectsV2操作を呼び出して、名前にdirプレフィックスが含まれているオブジェクトをexamplebucketのページごとに一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // 各ページに最大100個のオブジェクトを一覧表示できるように指定します。 
    $maxKeys = 100;
    // プレフィックスを指定します。 例: dir。 
    $prefix = 'dir/';
    $options=配列 (
        OssClient::OSS_MAX_KEYS =>$ maxKeys、
        OssClient::OSS_PREFIX =>$ prefix
    );
    do {
        $result = $ossClient->listObjectsV2($bucket、$options);
        $objectList = $result->getObjectList();
        print("objectList:\n");
        foreach ($objectList as $objectInfo) {
            print($objectInfo->getKey()) 。 "\n");
        }
        $options[OssClient::OSS_CONTINUATION_TOKEN] = $result->getNextContinuationToken();
    } while($result->getIsTruncated() === 'true'); 

特定のエンコーディングタイプを使用して名前がエンコードされているオブジェクトを一覧表示する

オブジェクトの名前に次のいずれかの文字が含まれている場合、オブジェクトを送信する前にオブジェクト名をURLエンコードする必要があります。

  • 一重引用符 (')

  • 二重引用符 (")

  • アンパサンド (&)

  • アングルブラケット (<>)

  • 一時停止マーカー (、)

  • 漢字、平仮名、片仮名

listObjectsまたはlistObjectsV2操作を呼び出して、特定のエンコードタイプを使用して名前がエンコードされているオブジェクトを一覧表示できます。

  • listObjects操作を呼び出して特定のエンコードタイプを使用して名前がエンコードされているオブジェクトを一覧表示する

    次のサンプルコードでは、listObjects操作を呼び出して、特定のエンコードタイプを使用して名前がエンコードされているオブジェクトを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    $options=配列 (
        // オブジェクト名がURLエンコードされていることを指定します。 
        OssClient::OSS_ENCODING_TYPE=>'url' 、
        // 各ページに最大20個のオブジェクトを一覧表示できるように指定します。 
        OssClient::OSS_MAX_KEYS=>20
    );
    do {
        $result = $ossClient->listObjects($bucket,$options);
        $objectList = $result->getObjectList();
        print("objectList:\n");
        foreach ($objectList as $objectInfo) {
            print($objectInfo->getKey()) 。 "\n");
        }
    
        print("prefix:\n");
        $prefixList = $result->getPrefixList();
        foreach ($prefixList as $prefixInfo) {
            print($prefixInfo->getPrefix()) 。 "\n");
        }
    
        if($result->getDelimiter() != null){
            printf("delimiter:".$result->getDelimiter().PHP_EOL);
        }
    
        if($result->getMarker() != null){
            printf("marker:".$result->getMarker().PHP_EOL);
        }
    
         $options[OssClient::OSS_MARKER] = $result->getNextMarker();
    } while($result->getIsTruncated() === 'true'); 
  • listObjectsV2操作を呼び出して、特定のエンコードタイプを使用して名前がエンコードされているオブジェクトを一覧表示する

    次のサンプルコードでは、listObjectsV2操作を呼び出して、特定のエンコードタイプを使用して名前がエンコードされているオブジェクトを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    $options=配列 (
        // オブジェクト名がURLエンコードされていることを指定します。 
        OssClient::OSS_ENCODING_TYPE=>'url' 、
        // 各ページに最大20個のオブジェクトを一覧表示できるように指定します。 
        OssClient::OSS_MAX_KEYS=>20
    );
    do {
        $result = $ossClient->listObjectsV2($bucket、$options);
        $objectList = $result->getObjectList();
        print("objectList:\n");
        foreach ($objectList as $objectInfo) {
            print($objectInfo->getKey()) 。 "\n");
        }
    
        print("prefix:\n");
        $prefixList = $result->getPrefixList();
        foreach ($prefixList as $prefixInfo) {
            print($prefixInfo->getPrefix()) 。 "\n");
        }
    
        if($result->getDelimiter() != null){
            printf("delimiter:".$result->getDelimiter().PHP_EOL);
        }
    
        if($result->getStartAfter() != null){
            printf("start after:".$result->getStartAfter().PHP_EOL);
        }
    
        $options[OssClient::OSS_CONTINUATION_TOKEN] = $result->getNextContinuationToken();
    } while($result->getIsTruncated() === 'true'); 

ディレクトリによるオブジェクトの一覧表示

OSSはフラット構造を使用してオブジェクトを格納します。 ディレクトリは、名前がスラッシュ (/) で終わるゼロバイトのオブジェクトです。 このディレクトリをアップロードおよびダウンロードできます。 デフォルトでは、名前がスラッシュ (/) で終わるオブジェクトは、OSSコンソールにディレクトリとして表示されます。

デリミタとプレフィックスパラメータを指定して、ディレクトリごとにオブジェクトを一覧表示できます。

  • リクエストでプレフィックスをディレクトリ名に設定すると、プレフィックスを含む名前のオブジェクトとサブディレクトリが一覧表示されます。

  • リクエストでプレフィックスを指定し、区切り文字をスラッシュ (/) に設定すると、ディレクトリ内で指定されたプレフィックスで始まる名前のオブジェクトとサブディレクトリが一覧表示されます。 各サブディレクトリは、CommonPrefixesで単一の結果要素としてリストされます。 これらのサブディレクトリ内のオブジェクトおよびディレクトリはリストされません。

バケットにoss.jpgfun/test.jpgfun/movie/001.avifun/movie/007.aviのオブジェクトが含まれているとします。 ディレクトリ区切り文字としてスラッシュ (/) を指定します。 次の例では、シミュレートされたディレクトリにオブジェクトを一覧表示します。

バケット内のすべてのオブジェクトの一覧表示

listObjectsまたはlistObjectsV2操作を呼び出して、バケット内のすべてのオブジェクトを一覧表示できます。

  • listObjects操作を呼び出して、バケット内のすべてのオブジェクトを一覧表示する

    次のサンプルコードでは、listObjects操作を呼び出してexamplebucketバケット内のすべてのオブジェクトを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    require_once __DIR__。 '/Common.php';
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    $options=配列 (
      'delimiter' => ''、);
    try {
      $listObjectInfo = $ossClient->listObjects($bucket、$options);
    } catch (OssException $e) {
      printf(__FUNCTION__ . ": FAILED\n");
      printf($e->getMessage()) 。 "\n");
      戻ります。}
    print(__FUNCTION__) 。 ": OK" 。 "\n");
    $objectList = $listObjectInfo->getObjectList();
    $prefixList = $listObjectInfo->getPrefixList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
        print($objectInfo->getKey()) 。 "\n");
      }
    }
    if (!empty($prefixList)) {
      print("prefixList: \n");
      foreach ($prefixList as $prefixInfo) {
        print($prefixInfo->getPrefix()) 。 "\n");
      }
    }
  • listObjectsV2操作を呼び出して、バケット内のすべてのオブジェクトを一覧表示する

    次のサンプルコードでは、listObjectsV2操作を呼び出してexamplebucketバケット内のすべてのオブジェクトを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    require_once __DIR__。 '/Common.php';
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    $options=配列 (
      'delimiter' => ''、);
    try {
      $listObjectInfo = $ossClient->listObjectsV2($bucket、$options);
    } catch (OssException $e) {
      printf(__FUNCTION__ . ": FAILED\n");
      printf($e->getMessage()) 。 "\n");
      戻ります。}
    print(__FUNCTION__) 。 ": OK" 。 "\n");
    $objectList = $listObjectInfo->getObjectList();
    $prefixList = $listObjectInfo->getPrefixList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
        print($objectInfo->getKey()) 。 "\n");
      }
    }
    if (!empty($prefixList)) {
      print("prefixList: \n");
      foreach ($prefixList as $prefixInfo) {
        print($prefixInfo->getPrefix()) 。 "\n");
      }
    }
  • レスポンスの例

    上記の操作を呼び出してexamplebucketバケット内のすべてのオブジェクトを一覧表示すると、次のレスポンスが返されます。

    objectList:
    楽しい /ムービー /001.avi
    楽しい /ムービー /007.avi
    楽しい /test.jpg
    oss.jpg 

特定のディレクトリ内のすべてのオブジェクトを一覧表示する

listObjectsまたはlistObjectsV2操作を呼び出して、fun/ ディレクトリ内のすべてのオブジェクトを一覧表示できます。

  • listObjects操作を呼び出して、特定のディレクトリ内のすべてのオブジェクトを一覧表示する

    次のサンプルコードでは、listObjects操作を呼び出してfun/ ディレクトリ内のすべてのオブジェクトを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    require_once __DIR__。 '/Common.php';
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // ディレクトリ名をfun /に設定します。 
    $prefix = 'fun/';
    $options=配列 (
      'prefix' => $prefix,
      'delimiter' => ''、);
    try {
      $listObjectInfo = $ossClient->listObjects($bucket、$options);
    } catch (OssException $e) {
      printf(__FUNCTION__ . ": FAILED\n");
      printf($e->getMessage()) 。 "\n");
      戻ります。}
    print(__FUNCTION__) 。 ": OK" 。 "\n");
    $objectList = $listObjectInfo->getObjectList();
    $prefixList = $listObjectInfo->getPrefixList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
        print($objectInfo->getKey()) 。 "\n");
      }
    }
    if (!empty($prefixList)) {
      print("prefixList: \n");
      foreach ($prefixList as $prefixInfo) {
        print($prefixInfo->getPrefix()) 。 "\n");
      }
    }
  • listObjectsV2操作を呼び出して、特定のディレクトリ内のすべてのオブジェクトを一覧表示する

    次のサンプルコードでは、listObjectsV2操作を呼び出してfun/ ディレクトリ内のすべてのオブジェクトを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    require_once __DIR__。 '/Common.php';
    
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // ディレクトリ名をfun /に設定します。 
    $prefix = 'fun/';
    $options=配列 (
      'prefix' => $prefix,
      'delimiter' => ''、);
    try {
      $listObjectInfo = $ossClient->listObjectsV2($bucket、$options);
    } catch (OssException $e) {
      printf(__FUNCTION__ . ": FAILED\n");
      printf($e->getMessage()) 。 "\n");
      戻ります。}
    print(__FUNCTION__) 。 ": OK" 。 "\n");
    $objectList = $listObjectInfo->getObjectList();
    $prefixList = $listObjectInfo->getPrefixList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
        print($objectInfo->getKey()) 。 "\n");
      }
    }
    if (!empty($prefixList)) {
      print("prefixList: \n");
      foreach ($prefixList as $prefixInfo) {
        print($prefixInfo->getPrefix()) 。 "\n");
      }
    }
  • レスポンスの例

    上记の2つの操作を呼び出してfun /ディレクトリ内のすべてのオブジェクトを一覧表示すると、次の応答が返されます。

    objectList:
    楽しい /ムービー /001.avi
    楽しい /ムービー /007.avi
    楽しい /test.jpg 

specifiディレクトリ内のオブジェクトとサブディレクトリの一覧表示

listObjectsまたはlistObjectsV2操作を呼び出して、fun/ ディレクトリ内のオブジェクトとサブディレクトリを一覧表示できます。

  • listObjects操作を呼び出して、特定のディレクトリ内のオブジェクトおよびサブディレクトリを一覧表示する

    次のサンプルコードでは、listObjects操作を呼び出して、fun/ ディレクトリ内のオブジェクトとサブディレクトリを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    require_once __DIR__。 '/Common.php';
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
     $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // ディレクトリ名をfun /に設定します。 
    $prefix = 'fun/';
    $delimiter = '/';
    $options=配列 (
      'delimiter' => $delimiter,
      'prefix' => $プレフィックス、);
    try {
      $listObjectInfo = $ossClient->listObjects($bucket、$options);
    } catch (OssException $e) {
      printf(__FUNCTION__ . ": FAILED\n");
      printf($e->getMessage()) 。 "\n");
      戻ります。}
    print(__FUNCTION__) 。 ": OK" 。 "\n");
    $objectList = $listObjectInfo->getObjectList();
    $prefixList = $listObjectInfo->getPrefixList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
        print($objectInfo->getKey()) 。 "\n");
      }
    }
    // commonPrefixsはfun /ディレクトリ内のすべてのサブディレクトリを一覧表示します。 
    if (!empty($prefixList)) {
      print("prefixList: \n");
      foreach ($prefixList as $prefixInfo) {
        print($prefixInfo->getPrefix()) 。 "\n");
      }
    }
  • listObjectsV2操作を呼び出して、特定のディレクトリ内のオブジェクトおよびサブディレクトリを一覧表示する

    次のサンプルコードでは、listObjectsV2操作を呼び出して、fun/ ディレクトリ内のオブジェクトとサブディレクトリを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    require_once __DIR__。 '/Common.php';
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
     $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // ディレクトリ名をfun /に設定します。 
    $prefix = 'fun/';
    $delimiter = '/';
    $options=配列 (
      'delimiter' => $delimiter,
      'prefix' => $プレフィックス、);
    try {
      $listObjectInfo = $ossClient->listObjectsV2($bucket、$options);
    } catch (OssException $e) {
      printf(__FUNCTION__ . ": FAILED\n");
      printf($e->getMessage()) 。 "\n");
      戻ります。}
    print(__FUNCTION__) 。 ": OK" 。 "\n");
    $objectList = $listObjectInfo->getObjectList();
    $prefixList = $listObjectInfo->getPrefixList();
    if (!empty($objectList)) {
      print("objectList:\n");
      foreach ($objectList as $objectInfo) {
        print($objectInfo->getKey()) 。 "\n");
      }
    }
    // commonPrefixsはfun /ディレクトリ内のすべてのサブディレクトリを一覧表示します。 
    if (!empty($prefixList)) {
      print("prefixList: \n");
      foreach ($prefixList as $prefixInfo) {
        print($prefixInfo->getPrefix()) 。 "\n");
      }
    }
  • レスポンスの例

    上记の2つの操作を呼び出してfun /ディレクトリ内のオブジェクトとサブディレクトリを一覧表示すると、次の応答が返されます。

    objectList:
    楽しい /test.jpg
    prefixList:
    楽しい /映画 /

specifiecディレクトリ内のオブジェクトのサイズを一覧表示する

listObjectsまたはlistObjectsV2操作を呼び出して、fun/ ディレクトリ内のオブジェクトのサイズを一覧表示できます。

  • listObjects操作を呼び出して、特定のディレクトリ内のオブジェクトのサイズを一覧表示します。

    次のサンプルコードでは、listObjects操作を呼び出してfun /ディレクトリ内のオブジェクトのサイズを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    require_once __DIR__。 '/Common.php';
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // ディレクトリ名をfun /に設定します。 
    $prefix = 'fun/';
    $delimiter = '';
    $nextMarker = '';
    $maxkeys = 1000;
    $options=配列 (
        'delimiter' => $delimiter,
        'prefix' => $prefix,
        'max-keys' => $maxkeys,
        'marker' => $nextMarker、);
    $bool = true;
    $size = 0;
    while ($bool){
        $result = $ossClient->listObjects($bucket,$options);
        foreach ($objInfoとして $result->getObjectList()) {
            printf("オブジェクト名".$objInfo->getKey().":" 。 ($objInfo->getSize() / 1024) 。 "KB".PHP_EOL);
            $size +=$objInfo->getSize();
        }
        if($result->getIsTruncated() === 'true'){
            $options['marker'] = $result->getNextMarker();
        }else{
            $bool = false;
        }
    }
    printf($prefix.":" ($サイズ /1024) 。 "KB".PHP_EOL); 
  • listObjectsV2操作を呼び出して、特定のディレクトリ内のオブジェクトのサイズを一覧表示します。

    次のサンプルコードでは、listObjectsV2操作を呼び出してfun /ディレクトリ内のオブジェクトのサイズを一覧表示する方法の例を示します。

    <?php
    if (is_file(__DIR__) 。 '/../autoload.php')) {
        require_once __DIR__ . '/../autoload.php';
    }
    if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
        require_once __DIR__ . '/../vendor/autoload.php';
    }
    require_once __DIR__。 '/Common.php';
    OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。  
    $provider = new EnvironmentVariableCredentialsProvider();
    // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
    $end point = "https://oss-cn-hangzhou.aliyuncs.com";
    // バケットの名前を指定します。 例: examplebucket. 
    $bucket= "examplebucket";
    
    $config=配列 (
            "provider" => $provider、
            "endpoint" => $end ポイント、
        );
        $ossClient = new OssClient($config);
    // ディレクトリ名をfun /に設定します。 
    $prefix = 'fun/';
    $delimiter = '';
    $nextMarker = '';
    $maxkeys = 1000;
    $options=配列 (
        'delimiter' => $delimiter,
        'prefix' => $prefix,
        'max-keys' => $maxkeys,
    );
    $bool = true;
    $size = 0;
    while ($bool){
        $result = $ossClient->listObjectsV2($bucket、$options);
        foreach ($objInfoとして $result->getObjectList()) {
            printf("オブジェクト名".$objInfo->getKey().":" 。 ($objInfo->getSize() / 1024) 。 "KB".PHP_EOL);
            $size +=$objInfo->getSize();
        }
        if($result->getIsTruncated() === 'true'){
            $options[OssClient::OSS_CONTINUATION_TOKEN] = $result->getNextContinuationToken();
        }else{
            $bool = false;
        }
    }
    printf($prefix.":" ($サイズ /1024) 。 "KB".PHP_EOL); 
  • レスポンスの例

    上记の操作を呼び出してfun /ディレクトリ内のオブジェクトのサイズを一覧表示すると、次の応答が返されます。

    オブジェクトnamefun/movie/001.avi: 0.01953125KB
    object namefun/movie/007.avi: 290.71875KB
    オブジェクトnamefun/test.jpg:144.216796875KB
    楽しい /:434.955078125KB 

参考資料

  • オブジェクトの一覧表示に使用する完全なサンプルコードについては、『GitHub』をご参照ください。

  • オブジェクトを一覧表示するために呼び出すAPI操作の詳細については、「GetBucket (ListObjects) 」および「ListObjectsV2(GetBucketV2) 」をご参照ください。