2015-04-05 65 views
0

我試圖從Shopify傳輸文件到S3,並且出現此錯誤: 「您必須爲Body或SourceFile參數指定非空值。我相信這是因爲我從遠程位置傳輸文件,但我不知道如何解決此問題。我已驗證遠程文件確實存在,並且如果使用表單上傳,我的代碼工作正常。複製遠程文件到S3

我的代碼:

require dirname(__FILE__).'/../../vendor/autoload.php'; 
use Aws\S3\S3Client; 
$s3Client = null; 
$bucket="mybucketname"; 
$myfile="myfilename.jpg"; 
$mypath="https://shopifyfilepath/".$myfile; 
function SendFileToS3($filename, $filepath, $bucket) 
{ 
    global $s3Client; 
    if (!$s3Client) 
    { 
     $s3Client = S3Client::factory(array(
     'key' => $_SERVER["AWS_ACCESS_KEY_ID"], 
     'secret' => $_SERVER["AWS_SECRET_KEY"] 
     )); 
    } 
    $result = $s3Client->putObject(array(
     'Bucket'  => $bucket, 
     'Key'  => $filename, 
     'SourceFile' => $filepath, 
     'ACL'  => 'public-read' 
    )); 
    return $result; 
} 
SendFileToS3($myfile, $mypath, $bucket); 

回答

1

您不能將文件直接從S3到一個HTTP路徑轉移。您需要首先將其下載到本地文件(或變量),然後將其傳輸。