以下代码示例向您展示如何通过 Amazon S3 实施 Amazon S3 中的AWS SDK for PHP常见场景。
操作是展示如何调用具体服务函数的代码节选。
场景是展示如何通过在同一服务中调用多个函数来完成特定任务的代码示例。
每个示例都包含一个指向的链接GitHub,其中包含了有关如何在上下文中设置和运行代码的说明。
操作
将对象从一个桶复制到另一个
以下代码示例显示如何将 S3 对象从一个桶复制到另一个桶。
- SDK for PHP
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。
对象的简单副本。
$s3client = new Aws\S3\S3Client(['region' => 'us-west-2', 'version' => 'latest']); try { $folder = "copied-folder"; $s3client->copyObject([ 'Bucket' => $bucket_name, 'CopySource' => "$bucket_name/$file_name", 'Key' => "$folder/$file_name-copy", ]); echo "Copied $file_name to $folder/$file_name-copy.\n"; } catch (Exception $exception) { echo "Failed to copy $file_name with error: " . $exception->getMessage(); exit("Please fix error with object copying before continuing."); }
- 有关 API 的详细信息,请参阅 CopyObjectAWS SDK for PHPAPI 参考中的。
创建桶
以下代码示例显示如何创建 S3 桶。
- SDK for PHP
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。
创建桶。
$s3client = new Aws\S3\S3Client(['region' => 'us-west-2', 'version' => 'latest']); try { $s3client->createBucket([ 'Bucket' => $bucket_name, 'CreateBucketConfiguration' => ['LocationConstraint' => $region], ]); echo "Created bucket named: $bucket_name \n"; } catch (Exception $exception) { echo "Failed to create bucket $bucket_name with error: " . $exception->getMessage(); exit("Please fix error with bucket creation before continuing."); }
- 有关 API 的详细信息,请参阅 CreateBucketAWS SDK for PHPAPI 参考中的。
删除空桶
以下代码示例显示如何删除空的 S3 桶。
- SDK for PHP
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。
删除空桶。
$s3client = new Aws\S3\S3Client(['region' => 'us-west-2', 'version' => 'latest']); try { $s3client->deleteBucket([ 'Bucket' => $bucket_name, ]); echo "Deleted bucket $bucket_name.\n"; } catch (Exception $exception) { echo "Failed to delete $bucket_name with error: " . $exception->getMessage(); exit("Please fix error with bucket deletion before continuing."); }
- 有关 API 的详细信息,请参阅 DeleteBucketAWS SDK for PHPAPI 参考中的。
删除多个对象
以下代码示例显示如何从 S3 桶中删除多个对象。
- SDK for PHP
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。
从键列表中删除一组对象。
$s3client = new Aws\S3\S3Client(['region' => 'us-west-2', 'version' => 'latest']); try { $objects = []; foreach ($contents['Contents'] as $content) { $objects[] = [ 'Key' => $content['Key'], ]; } $s3client->deleteObjects([ 'Bucket' => $bucket_name, 'Key' => $file_name, 'Delete' => [ 'Objects' => $objects, ], ]); $check = $s3client->listObjects([ 'Bucket' => $bucket_name, ]); if (count($check) <= 0) { throw new Exception("Bucket wasn't empty."); } echo "Deleted all objects and folders from $bucket_name.\n"; } catch (Exception $exception) { echo "Failed to delete $file_name from $bucket_name with error: " . $exception->getMessage(); exit("Please fix error with object deletion before continuing."); }
- 有关 API 的详细信息,请参阅 DeleteObjectsAWS SDK for PHPAPI 参考中的。
从桶中获取对象
以下代码示例显示如何从 S3 桶中的对象读取数据。
- SDK for PHP
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。
获取对象。
$s3client = new Aws\S3\S3Client(['region' => 'us-west-2', 'version' => 'latest']); try { $file = $s3client->getObject([ 'Bucket' => $bucket_name, 'Key' => $file_name, ]); $body = $file->get('Body'); $body->rewind(); echo "Downloaded the file and it begins with: {$body->read(26)}.\n"; } catch (Exception $exception) { echo "Failed to download $file_name from $bucket_name with error: " . $exception->getMessage(); exit("Please fix error with file downloading before continuing."); }
- 有关 API 的详细信息,请参阅 GetObjectAWS SDK for PHPAPI 参考中的。
列出桶中的对象
以下代码示例显示如何列出 S3 桶中的对象。
- SDK for PHP
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。
列出桶中的对象。
$s3client = new Aws\S3\S3Client(['region' => 'us-west-2', 'version' => 'latest']); try { $contents = $s3client->listObjects([ 'Bucket' => $bucket_name, ]); echo "The contents of your bucket are: \n"; foreach ($contents['Contents'] as $content) { echo $content['Key'] . "\n"; } } catch (Exception $exception) { echo "Failed to list objects in $bucket_name with error: " . $exception->getMessage(); exit("Please fix error with listing objects before continuing."); }
- 有关 API 的详细信息,请参阅 ListObjectsAWS SDK for PHPAPI 参考中的。
将对象上传到桶
以下代码示例显示如何将对象上载到 S3 桶。
- SDK for PHP
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。
将对象上载到桶。
$s3client = new Aws\S3\S3Client(['region' => 'us-west-2', 'version' => 'latest']); $file_name = "local-file-" . uniqid(); try { $s3client->putObject([ 'Bucket' => $bucket_name, 'Key' => $file_name, 'SourceFile' => 'testfile.txt' ]); echo "Uploaded $file_name to $bucket_name.\n"; } catch (Exception $exception) { echo "Failed to upload $file_name with error: " . $exception->getMessage(); exit("Please fix error with file upload before continuing."); }
- 有关 API 的详细信息,请参阅 PutObjectAWS SDK for PHPAPI 参考中的。
场景
开始使用桶和对象
以下代码示例显示了如何:
- 创建桶并将文件上传到其中。
- 从桶下载对象。
- 将对象复制到桶中的子文件夹。
- 列出桶中的对象。
- 删除桶对象和桶。
- SDK for PHP
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库中进行设置和运行。
require 'vendor/autoload.php'; use Aws\S3\S3Client; echo("--------------------------------------\n"); print("Welcome to the Amazon S3 getting started demo using PHP!\n"); echo("--------------------------------------\n"); $region = 'us-west-2'; $version = 'latest'; $s3client = new S3Client([ 'region' => $region, 'version' => $version ]); /* Inline declaration example $s3client = new Aws\S3\S3Client(['region' => 'us-west-2', 'version' => 'latest']); */ $bucket_name = "doc-example-bucket-" . uniqid(); try { $s3client->createBucket([ 'Bucket' => $bucket_name, 'CreateBucketConfiguration' => ['LocationConstraint' => $region], ]); echo "Created bucket named: $bucket_name \n"; } catch (Exception $exception) { echo "Failed to create bucket $bucket_name with error: " . $exception->getMessage(); exit("Please fix error with bucket creation before continuing."); } $file_name = "local-file-" . uniqid(); try { $s3client->putObject([ 'Bucket' => $bucket_name, 'Key' => $file_name, 'SourceFile' => 'testfile.txt' ]); echo "Uploaded $file_name to $bucket_name.\n"; } catch (Exception $exception) { echo "Failed to upload $file_name with error: " . $exception->getMessage(); exit("Please fix error with file upload before continuing."); } try { $file = $s3client->getObject([ 'Bucket' => $bucket_name, 'Key' => $file_name, ]); $body = $file->get('Body'); $body->rewind(); echo "Downloaded the file and it begins with: {$body->read(26)}.\n"; } catch (Exception $exception) { echo "Failed to download $file_name from $bucket_name with error: " . $exception->getMessage(); exit("Please fix error with file downloading before continuing."); } try { $folder = "copied-folder"; $s3client->copyObject([ 'Bucket' => $bucket_name, 'CopySource' => "$bucket_name/$file_name", 'Key' => "$folder/$file_name-copy", ]); echo "Copied $file_name to $folder/$file_name-copy.\n"; } catch (Exception $exception) { echo "Failed to copy $file_name with error: " . $exception->getMessage(); exit("Please fix error with object copying before continuing."); } try { $contents = $s3client->listObjects([ 'Bucket' => $bucket_name, ]); echo "The contents of your bucket are: \n"; foreach ($contents['Contents'] as $content) { echo $content['Key'] . "\n"; } } catch (Exception $exception) { echo "Failed to list objects in $bucket_name with error: " . $exception->getMessage(); exit("Please fix error with listing objects before continuing."); } try { $objects = []; foreach ($contents['Contents'] as $content) { $objects[] = [ 'Key' => $content['Key'], ]; } $s3client->deleteObjects([ 'Bucket' => $bucket_name, 'Key' => $file_name, 'Delete' => [ 'Objects' => $objects, ], ]); $check = $s3client->listObjects([ 'Bucket' => $bucket_name, ]); if (count($check) <= 0) { throw new Exception("Bucket wasn't empty."); } echo "Deleted all objects and folders from $bucket_name.\n"; } catch (Exception $exception) { echo "Failed to delete $file_name from $bucket_name with error: " . $exception->getMessage(); exit("Please fix error with object deletion before continuing."); } try { $s3client->deleteBucket([ 'Bucket' => $bucket_name, ]); echo "Deleted bucket $bucket_name.\n"; } catch (Exception $exception) { echo "Failed to delete $bucket_name with error: " . $exception->getMessage(); exit("Please fix error with bucket deletion before continuing."); } echo "Successfully ran the Amazon S3 with PHP demo.\n";
- 有关 API 详细信息,请参阅《AWS SDK for PHP API 参考》中的以下主题。
声明:本站部分资源搜集自网络,相关版权归版权持有人所有,如有侵权,请联络我们,本站会尽快删除。