PHP AmazonS3-将整个文件及其内容从托管服务器批量复制到AmazonS3

PHP AmazonS3-将整个文件及其内容从托管服务器批量复制到AmazonS3,php,amazon-web-services,amazon-s3,Php,Amazon Web Services,Amazon S3,我正在将媒体文件从第三方托管服务器迁移到Amazon S3。我尝试了一个教程,通过HTML上传一个文件到AmazonS3,看看一切都正常 我在我的第三方托管服务器上有数百个图像-我想将它们迁移到AmazonS3。我有两种选择,一种是在我的服务器上下载,另一种是逐个上传。或者使用PHP将文件直接从第三方服务器上传到Amazon,这是最方便的方式 我根据我试过的教程试过这段代码- 这是我试图用来将文件从我的服务器复制到Amazon S3的代码: <?php // Bucket Name $bu

我正在将媒体文件从第三方托管服务器迁移到Amazon S3。我尝试了一个教程,通过HTML上传一个文件到AmazonS3,看看一切都正常

我在我的第三方托管服务器上有数百个图像-我想将它们迁移到AmazonS3。我有两种选择,一种是在我的服务器上下载,另一种是逐个上传。或者使用PHP将文件直接从第三方服务器上传到Amazon,这是最方便的方式

我根据我试过的教程试过这段代码-

这是我试图用来将文件从我的服务器复制到Amazon S3的代码:

<?php
// Bucket Name
$bucket="justanotherimageons3";
if (!class_exists('S3'))require_once('S3.php');

//AWS access info
if (!defined('awsAccessKey')) define('awsAccessKey', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX');
if (!defined('awsSecretKey')) define('awsSecretKey', 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYY');

$tmp = 'pictures/';

$s3 = new S3(awsAccessKey, awsSecretKey);

if($s3->putObjectFile($tmp, $bucket , * , S3::ACL_PUBLIC_READ) )
{
echo "S3 Upload Successful."; 
}

?>
不幸的是,它无法工作PHP警告:S3::inputFile:无法打开输入文件:图片/

请问我该怎么办


谢谢

您正试图打开一个文件夹。你需要给它传递一个文件

$tmp = 'pictures/';

if (is_dir($tmp)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            if(!is_file($file)){continue;}

            $s3 = new S3(awsAccessKey, awsSecretKey);

            if($s3->putObjectFile($tmp.$file, $bucket , * , S3::ACL_PUBLIC_READ) ){
                 echo "$file uploaded Successfully."; 
            }
        }
        closedir($dh);
    }
}
为将文件目录上载到S3提供了一种非常简单的机制。它叫“世界杯”。在实例化S3客户端之后,您只需要执行以下操作:

$s3Client->uploadDirectory(__DIR__ . '/pictures/', $bucket);

我正在本地打开服务器上的文件。