如何将文件夹上传到AWS

时间:2014-12-24 06:32:06

标签: php amazon-web-services

我使用AWS为我的网站上传图片,css和一些zip文件,他们可以上传它们。但是现在我想要我首先在localhost上传一个zip,然后我将它们提取到一个文件夹中,我想要将整个文件夹上传到aws.Can任何人都可以帮我做。谢谢。

我使用函数上传文件,如

require_once 'aws-sdk-for-php/sdk.class.php';
$s3 = new AmazonS3();
$response = $s3->create_object($bucket, $filename, array(
'fileUpload' => $filepath,
 'acl' => AmazonS3::ACL_PUBLIC,
'storage' => AmazonS3::STORAGE_REDUCED,
'headers' => array(
    'Cache-Control'    => 'max-age=2592000'
);

单张图片工作正常。但我不知道怎么做entore文件夹。

2 个答案:

答案 0 :(得分:1)

没有可以上传整个文件夹的Amazon S3 API调用。您可以循环遍历本地文件列表,然后将每个文件单独上载到S3。如果您有能力,并行执行此操作也可以大大加快上传速度。

你也可以通过呼叫AWS Command Line Interface (CLI)来作弊。 CLI可以上传/下载递归的文件列表,也可以为大文件执行多部分上载。还有一个aws s3 sync命令可以智能地仅上传新的/修改过的文件。

答案 1 :(得分:0)

使用 PHP ,您可以上传整个目录:

$client->uploadDirectory(
  SOURCE_FOLDER,
  YOUR_BUCKET_NAME,
  DESTINATION,
  array(
    'concurrency' => 5,
    'debug'          => TRUE,
    'force'            => FALSE,
    'params'        => array(
      'ServerSideEncryption' => 'AES256',
    ),
  )
);