Topik ini menjelaskan cara mendaftar semua objek, sejumlah objek tertentu, dan objek yang namanya mengandung awalan tertentu dalam bucket Object Storage Service (OSS).
Catatan penggunaan
Pada topik ini, titik akhir publik wilayah China (Hangzhou) digunakan. Untuk mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk detail tentang wilayah dan titik akhir yang didukung, lihat Wilayah dan titik akhir.
Pada topik ini, instans OSSClient dibuat dengan menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient dengan menggunakan nama domain kustom atau Security Token Service (STS), lihat Buat OssClient.
Untuk mendaftar objek, Anda harus memiliki izin
oss:ListObjects. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke RAM user.
Daftar objek
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk mendaftar objek di direktori root bucket tertentu. Subdirektori dan objek di dalam subdirektori tidak didaftarkan.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk mendaftar objek di direktori root bucket bernama examplebucket. Subdirektori dan objek di dalam subdirektori tidak didaftarkan. Secara default, 100 objek dikembalikan.
<?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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\Core\OssException; try { // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); $listObjectInfo = $ossClient->listObjects($bucket); printf("Bucket Name: %s". "\n",$listObjectInfo->getBucketName()); printf("Prefix: %s". "\n",$listObjectInfo->getPrefix()); printf("Marker: %s". "\n",$listObjectInfo->getMarker()); printf("Next Marker: %s". "\n",$listObjectInfo->getNextMarker()); printf("Max Keys: %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("Object Name: %s". "\n",$objectInfo->getKey()); printf("Object Size: %s". "\n",$objectInfo->getSize()); printf("Object Type: %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("Owner Name:".$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"); return; }Metode listObjectsV2
Kode berikut menunjukkan cara menggunakan metode listObjectsV2 untuk mendaftar objek di direktori root bucket bernama examplebucket. Operasi ini tidak mendaftar subdirektori atau objek di dalamnya. Secara default, hingga 100 objek dikembalikan.
<?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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\Core\OssException; try { // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); $listObjectInfo = $ossClient->listObjectsV2($bucket); printf("Bucket Name: %s". "\n",$listObjectInfo->getBucketName()); printf("Prefix: %s". "\n",$listObjectInfo->getPrefix()); printf("Next Continuation Token: %s". "\n",$listObjectInfo->getNextContinuationToken()); printf("Continuation Token: %s". "\n",$listObjectInfo->getContinuationToken()); printf("Max Keys: %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("Object Name: %s". "\n",$objectInfo->getKey()); printf("Object Size: %s". "\n",$objectInfo->getSize()); printf("Object Type: %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("Owner Name:".$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"); return; }
Daftar jumlah objek tertentu
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk mendaftar jumlah objek tertentu dalam sebuah bucket.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk mendaftar 200 objek dalam bucket bernama 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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan jumlah maksimum objek yang dikembalikan menjadi 200. $maxkeys = 200; $options = array( 'max-keys' => $maxkeys, ); try { $listObjectInfo = $ossClient->listObjects($bucket, $options); } catch (OssException $e) { printf($e->getMessage() . "\n"); return; } $objectList = $listObjectInfo->getObjectList(); if (!empty($objectList)) { print("objectList:\n"); foreach ($objectList as $objectInfo) { print($objectInfo->getKey() . "\n"); } }Gunakan metode listObjectsV2
Kode berikut menunjukkan cara memanggil metode listObjectsV2 untuk mendaftar 200 objek dalam bucket bernama 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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan jumlah maksimum objek yang dikembalikan menjadi 200. $maxkeys = 200; $options = array( 'max-keys' => $maxkeys, ); try { $listObjectInfo = $ossClient->listObjectsV2($bucket, $options); } catch (OssException $e) { printf($e->getMessage() . "\n"); return; } $objectList = $listObjectInfo->getObjectList(); if (!empty($objectList)) { print("objectList:\n"); foreach ($objectList as $objectInfo) { print($objectInfo->getKey() . "\n"); } }
Daftar objek dengan awalan tertentu
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk mendaftar objek dengan awalan tertentu dalam sebuah bucket.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk mendaftar objek dengan awalan `dir` dalam bucket bernama 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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan awalan menjadi dir/. $prefix = 'dir/'; $options = array( 'prefix' => $prefix, ); try { $listObjectInfo = $ossClient->listObjects($bucket, $options); } catch (OssException $e) { printf($e->getMessage() . "\n"); return; } $objectList = $listObjectInfo->getObjectList(); if (!empty($objectList)) { print("objectList:\n"); foreach ($objectList as $objectInfo) { print($objectInfo->getKey() . "\n"); } }Gunakan metode listObjectsV2
Kode berikut menunjukkan cara memanggil metode listObjectsV2 untuk mendaftar objek dengan awalan `dir` dalam bucket bernama 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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan awalan menjadi dir/. $prefix = 'dir/'; $options = array( 'prefix' => $prefix, ); try { $listObjectInfo = $ossClient->listObjectsV2($bucket, $options); } catch (OssException $e) { printf($e->getMessage() . "\n"); return; } $objectList = $listObjectInfo->getObjectList(); if (!empty($objectList)) { print("objectList:\n"); foreach ($objectList as $objectInfo) { print($objectInfo->getKey() . "\n"); } }
Daftar objek secara alfabetis setelah nama objek tertentu
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk mendaftar objek yang secara alfabetis berada setelah nama objek tertentu.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk mendaftar objek yang secara alfabetis berada setelah `test.txt` dalam bucket bernama 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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan marker ke test.txt. Parameter ini menentukan bahwa objek dikembalikan secara alfabetis mulai dari objek yang ditentukan oleh marker. $marker = "test.txt"; $options = array( OssClient::OSS_MARKER=>$marker ); try { $listObjectInfo = $ossClient->listObjects($bucket, $options); } catch (OssException $e) { printf($e->getMessage() . "\n"); return; } $objectList = $listObjectInfo->getObjectList(); if (!empty($objectList)) { print("objectList:\n"); foreach ($objectList as $objectInfo) { print($objectInfo->getKey() . "\n"); } }Gunakan metode listObjectsV2
Kode berikut menunjukkan cara memanggil metode listObjectsV2 untuk mendaftar objek yang secara alfabetis berada setelah `test.txt` dalam bucket bernama 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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan startAfter ke test.txt. Parameter ini menentukan bahwa objek dikembalikan secara alfabetis mulai dari objek yang ditentukan oleh startAfter. $startAfter = "test.txt"; $options = array( OssClient::OSS_START_AFTER=>$startAfter ); try { $listObjectInfo = $ossClient->listObjectsV2($bucket, $options); } catch (OssException $e) { printf($e->getMessage() . "\n"); return; } $objectList = $listObjectInfo->getObjectList(); if (!empty($objectList)) { print("objectList:\n"); foreach ($objectList as $objectInfo) { print($objectInfo->getKey() . "\n"); } }
Daftar semua objek per halaman
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk mendaftar semua objek secara terpaginasi. Gunakan parameter maxKeys untuk menentukan jumlah objek yang dikembalikan pada setiap halaman.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk mendaftar semua objek dalam bucket bernama examplebucket secara terpaginasi.
<?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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); $options = array( // Tetapkan jumlah objek yang dikembalikan pada setiap halaman menjadi 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');Gunakan metode listObjectsV2
Kode berikut menunjukkan cara memanggil metode listObjectsV2 untuk mendaftar semua objek dalam bucket bernama examplebucket secara terpaginasi.
<?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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); $options = array( // Tetapkan jumlah objek yang dikembalikan pada setiap halaman menjadi 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');
Daftar objek dengan awalan tertentu per halaman
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk mendaftar objek dengan awalan tertentu secara terpaginasi.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk mendaftar objek dengan awalan `dir` dalam bucket bernama examplebucket secara terpaginasi.
<?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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan jumlah objek yang dikembalikan pada setiap halaman menjadi 100. $maxKeys = 100; // Tentukan awalan. Contoh: dir/. $prefix = 'dir/'; $options = array( 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');Gunakan metode listObjectsV2
Kode berikut menunjukkan cara memanggil metode listObjectsV2 untuk mendaftar objek dengan awalan `dir` dalam bucket bernama examplebucket secara terpaginasi.
<?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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan jumlah objek yang dikembalikan pada setiap halaman menjadi 100. $maxKeys = 100; // Tentukan awalan. Contoh: dir/. $prefix = 'dir/'; $options = array( 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');
Tentukan encoding nama objek
Jika nama objek mengandung karakter khusus, Anda harus meng-encode nama objek tersebut untuk transmisi. OSS hanya mendukung URL encoding.
Tanda kutip tunggal (')
Tanda kutip ganda (")
Ampersand (&)
Tanda kurung siku (< >)
Koma enumerasi (、)
Karakter Tionghoa
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk menentukan encoding nama objek.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk menentukan encoding nama objek.
<?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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); $options = array( // Tetapkan jenis encoding nama objek menjadi URL. OssClient::OSS_ENCODING_TYPE=>'url', // Tetapkan jumlah objek yang dikembalikan pada setiap halaman menjadi 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');Gunakan metode listObjectsV2
Kode berikut menunjukkan cara memanggil metode listObjectsV2 untuk menentukan encoding nama objek.
<?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'; } use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); $options = array( // Tetapkan jenis encoding nama objek menjadi URL. OssClient::OSS_ENCODING_TYPE=>'url', // Tetapkan jumlah objek yang dikembalikan pada setiap halaman menjadi 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');
Simulasikan direktori
OSS menggunakan struktur datar di mana semua data disimpan sebagai objek. Untuk mensimulasikan direktori, Anda dapat membuat objek berukuran 0 byte yang namanya diakhiri dengan garis miring (/). Anda dapat mengunggah dan mengunduh objek ini. Konsol OSS menampilkan objek yang namanya diakhiri dengan garis miring (/) sebagai direktori.
Anda dapat menggunakan parameter delimiter dan prefix untuk mensimulasikan fitur direktori:
Jika Anda menetapkan parameter `prefix` ke nama folder, objek yang namanya diawali dengan awalan ini akan didaftarkan. Ini secara rekursif mendaftar semua objek dan subdirektori di dalam folder tersebut.
Jika Anda menetapkan parameter `prefix` dan menetapkan parameter `delimiter` ke garis miring (/), hanya objek dan subdirektori di tingkat atas folder yang didaftarkan. Subdirektori dikembalikan dalam elemen `CommonPrefixes`, sedangkan objek dan folder di dalam subdirektori tersebut tidak didaftarkan.
Asumsikan sebuah bucket berisi objek oss.jpg, fun/test.jpg, fun/movie/001.avi, dan fun/movie/007.avi, dan pemisah folder adalah garis miring (/). Contoh berikut menunjukkan cara mendaftar objek dengan mensimulasikan direktori.
Daftar semua objek dalam bucket
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk mendaftar semua objek dalam bucket tertentu.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk mendaftar semua objek dalam bucket bernama 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'; use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); $options = array( 'delimiter' => '', ); try { $listObjectInfo = $ossClient->listObjects($bucket,$options); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } 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"); } }Gunakan metode listObjectsV2
Kode berikut menunjukkan cara memanggil metode listObjectsV2 untuk mendaftar semua objek dalam bucket bernama 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'; use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); $options = array( 'delimiter' => '', ); try { $listObjectInfo = $ossClient->listObjectsV2($bucket,$options); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } 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"); } }Respons
Respons berikut dikembalikan ketika Anda memanggil metode di atas untuk mendaftar semua objek dalam bucket examplebucket.
objectList: fun/movie/001.avi fun/movie/007.avi fun/test.jpg oss.jpg
Daftar semua objek dalam direktori tertentu
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk mendaftar semua objek dalam direktori fun/.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk mendaftar semua objek dalam direktori 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'; use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan direktori menjadi fun/. $prefix = 'fun/'; $options = array( 'prefix' => $prefix, 'delimiter' => '', ); try { $listObjectInfo = $ossClient->listObjects($bucket, $options); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } 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"); } }Gunakan metode listObjectsV2
Kode berikut menunjukkan cara memanggil metode listObjectsV2 untuk mendaftar semua objek dalam direktori 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'; use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan nama direktori menjadi fun/. $prefix = 'fun/'; $options = array( 'prefix' => $prefix, 'delimiter' => '', ); try { $listObjectInfo = $ossClient->listObjectsV2($bucket, $options); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } 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"); } }Hasil
Respons berikut dikembalikan ketika Anda memanggil metode di atas untuk mendaftar semua objek dalam direktori fun/.
objectList: fun/movie/001.avi fun/movie/007.avi fun/test.jpg
Daftar objek dan subdirektori dalam direktori
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk mendaftar objek dan subdirektori dalam direktori fun/.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk mendaftar objek dan subdirektori dalam direktori 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'; use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan nama direktori menjadi fun/. $prefix = 'fun/'; $delimiter = '/'; $options = array( 'delimiter' => $delimiter, 'prefix' => $prefix, ); try { $listObjectInfo = $ossClient->listObjects($bucket, $options); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } print(__FUNCTION__ . ": OK" . "\n"); $objectList = $listObjectInfo->getObjectList(); $prefixList = $listObjectInfo->getPrefixList(); if (!empty($objectList)) { print("objectList:\n"); foreach ($objectList as $objectInfo) { print($objectInfo->getKey() . "\n"); } } // Daftar commonPrefixs berisi semua subdirektori dalam direktori fun/. if (!empty($prefixList)) { print("prefixList: \n"); foreach ($prefixList as $prefixInfo) { print($prefixInfo->getPrefix() . "\n"); } }Gunakan metode listObjectsV2
Kode berikut menunjukkan cara memanggil metode listObjectsV2 untuk mendaftar objek dan subdirektori dalam direktori 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'; use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan nama direktori menjadi fun/. $prefix = 'fun/'; $delimiter = '/'; $options = array( 'delimiter' => $delimiter, 'prefix' => $prefix, ); try { $listObjectInfo = $ossClient->listObjectsV2($bucket, $options); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } print(__FUNCTION__ . ": OK" . "\n"); $objectList = $listObjectInfo->getObjectList(); $prefixList = $listObjectInfo->getPrefixList(); if (!empty($objectList)) { print("objectList:\n"); foreach ($objectList as $objectInfo) { print($objectInfo->getKey() . "\n"); } } // Daftar commonPrefixs berisi semua subdirektori dalam direktori fun/. if (!empty($prefixList)) { print("prefixList: \n"); foreach ($prefixList as $prefixInfo) { print($prefixInfo->getPrefix() . "\n"); } }Nilai kembalian
Respons berikut dikembalikan ketika Anda memanggil metode di atas untuk mendaftar objek dan subdirektori dalam direktori fun/.
objectList: fun/test.jpg prefixList: fun/movie/
Dapatkan ukuran objek dalam direktori tertentu
Anda dapat memanggil metode listObjects atau listObjectsV2 untuk mendapatkan ukuran objek dalam direktori fun/.
Gunakan metode listObjects
Kode berikut menunjukkan cara memanggil metode listObjects untuk mendapatkan ukuran objek dalam direktori 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'; use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan nama direktori menjadi fun/. $prefix = 'fun/'; $delimiter = ''; $nextMarker = ''; $maxkeys = 1000; $options = array( 'delimiter' => $delimiter, 'prefix' => $prefix, 'max-keys' => $maxkeys, 'marker' => $nextMarker, ); $bool = true; $size = 0; while ($bool){ $result = $ossClient->listObjects($bucket,$options); foreach ($result->getObjectList() as $objInfo){ printf("object name".$objInfo->getKey().":" . ($objInfo->getSize() / 1024) . "KB".PHP_EOL); $size+=$objInfo->getSize(); } if($result->getIsTruncated() === 'true'){ $options['marker'] = $result->getNextMarker(); }else{ $bool = false; } } printf($prefix.":" . ($size / 1024) . "KB".PHP_EOL);Gunakan metode listObjectsV2
Kode berikut menunjukkan cara memanggil metode listObjectsV2 untuk mendapatkan ukuran objek dalam direktori 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'; use OSS\Credentials\EnvironmentVariableCredentialsProvider; use OSS\OssClient; use OSS\CoreOssException; // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. $provider = new EnvironmentVariableCredentialsProvider(); // Contoh berikut menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir dengan titik akhir yang sebenarnya. $endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Tentukan nama bucket. Contoh: examplebucket. $bucket= "examplebucket"; $config = array( "provider" => $provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-hangzhou" ); $ossClient = new OssClient($config); // Tetapkan nama direktori menjadi fun/. $prefix = 'fun/'; $delimiter = ''; $nextMarker = ''; $maxkeys = 1000; $options = array( 'delimiter' => $delimiter, 'prefix' => $prefix, 'max-keys' => $maxkeys, ); $bool = true; $size = 0; while ($bool){ $result = $ossClient->listObjectsV2($bucket,$options); foreach ($result->getObjectList() as $objInfo){ printf("object name".$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.":" . ($size / 1024) . "KB".PHP_EOL);Nilai kembalian
Respons berikut dikembalikan ketika Anda memanggil metode di atas untuk mendapatkan ukuran objek.
object namefun/movie/001.avi:0.01953125KB object namefun/movie/007.avi:290.71875KB object namefun/test.jpg:144.216796875KB fun/:434.955078125KB
Referensi
Untuk kode contoh lengkap tentang cara mendaftar objek, lihat contoh GitHub.
Untuk informasi selengkapnya tentang operasi API untuk mendaftar objek, lihat GetBucket (ListObjects) dan ListObjectsV2 (GetBucketV2).