【发布时间】:2014-02-15 12:26:49
【问题描述】:
我似乎无法在 amazon-s3 的 php sdk 中找到同步和复制选项。目前我正在使用 PHP 代码中的 aws s3 cp/sync CLI 命令来实现这一点,这对我来说似乎不是很整洁。有任何想法吗?
【问题讨论】:
我似乎无法在 amazon-s3 的 php sdk 中找到同步和复制选项。目前我正在使用 PHP 代码中的 aws s3 cp/sync CLI 命令来实现这一点,这对我来说似乎不是很整洁。有任何想法吗?
【问题讨论】:
您可以结合使用 PHP SDK 中的两个功能来做到这一点。
首先,检查S3Client::uploadDirectory() 方法(请参阅user guide)。您可以像这样上传 while 目录的内容:
$s3Client->uploadDirectory('/local/directory', 'your-bucket-name');
如果您将它与S3 Stream Wrapper 结合使用,那么您可以指定一个存储桶,而不是使用本地目录作为源。
$s3Client->registerStreamWrapper();
$s3Client->uploadDirectory('s3://your-other-bucket-name', 'your-bucket-name');
这非常强大,因为如果您为 Stream Wrapper 使用不同配置的 S3Client 对象而不是使用 uploadDirectory() 的对象,您甚至可以跨区域执行某些操作。
【讨论】:
v3 中,S3Client::uploadDirectory() 不会智能同步,它会再次上传所有内容。见stackoverflow.com/questions/41960048/…。