aws s3使用php sdk将目录上传到存储桶

时间:2015-03-24 16:56:28

标签: php amazon-s3

这是ec2服务器中名为upload.php的php文件

require 'vendor/autoload.php';
use Aws\S3\S3Client;

$client = S3Client::factory(array(
            'key' => 'aws-secret-key',
            'secret' => 'aws-very-secret-pass',
        ));
$dir = '/home/user/movies/history';
$bucket = 'my-unique-bucket';
$keyPrefix = '';
$options = array(
    'params'      => array('ACL' => 'public-read'),
    'concurrency' => 20,
    'debug'       => true
);



$client->uploadDirectory($dir, $bucket, $keyPrefix, $options);

当我在终端中执行upload.php文件时返回致命错误,

PHP Fatal error:  Uncaught exception 'UnexpectedValueException' with message 'RecursiveDirectoryIterator::__construct(/home/kaya/Resimler/transferet/): failed to open dir: No such file or directory' in /var/www/html/vendor/aws/aws-sdk-php/src/Aws/S3/Sync/UploadSyncBuilder.php:47                                             
Stack trace:



#0 /var/www/html/vendor/aws/aws-sdk-php/src/Aws/S3/Sync/UploadSyncBuilder.php(47): RecursiveDirectoryIterator->__construct('/home/user/movie...', 12800)           
#1 /var/www/html/vendor/aws/aws-sdk-php/src/Aws/S3/S3Client.php(557): Aws\S3\Sync\UploadSyncBuilder->uploadFromDirectory('/home/user/movie...')                    
#2 /var/www/html/upload_dir.php(21): Aws\S3\S3Client->uploadDirectory('/home/user/movie...', 'my-unique-bucket', '', Array)                                                 
#3 {main}



  thrown in /var/www/html/vendor/aws/aws-sdk-php/src/Aws/S3/Sync/UploadSyncBuilder.php on line 47 

通常我可以使用php sdk清楚地上传文件,除了uploadfolder功能。我找不到假的地方。我的php sdk版本是2.7。

1 个答案:

答案 0 :(得分:-1)

我明白了。它适用于本地服务器,如xampp或其他东西,在远程服务器上不起作用。