2013-08-21 11 views
12
सेट

हाय मैं इस कोड के साथ एक बाल्टी में एक नई वस्तु डाल कोशिश कर रहा हूँ:पीएचपी अमेज़न एसडीके - putObject S3 और शारीरिक

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

require_once(FCPATH.'s3/aws-autoloader.php'); 

use Aws\S3\S3Client; 

class s3{ 
    public $_secret_key ="********"; 
    public $_access_key = "********"; 
    public $_bucket = "tphotos-dev"; 

function connect(){ 

    return S3Client::factory(array(
    'key' => $this->_access_key, 
    'secret' => $this->_secret_key, 
)); 


} 
function deleteObject($prefix = false){ 
    if($prefix){ 
     $s3 = $this->connect(); 
     return $s3->deleteMatchingObjects($this->_bucket, $prefix); 
    } 
} 

function putObject($file_name,$source_file){ 
    $s3 = $this->connect(); 
    $s3->putObject(array(
    'Bucket' => (string)$this->_bucket, 
    'Key' => $file_name, 
    'SourceFile' => $source_file, 
    'ACL'   => 'public-read', 
    )); 
    return $s3->waitUntilObjectExists(array(
    'Bucket' => $this->_bucket, 
    'Key' => $file_name 
    )); 

} 

} 

>

इसलिए एक बार मैं उदाहरण के लिए कार्य करें:

?
$s3->putObject('myfilename.jpg',get_file_content("temp/image.jpg")); 

यह रिटर्न त्रुटि:

Fatal error: Uncaught exception 'Aws\Common\Exception\InvalidArgumentException' with message 'You must specify a non-null value for the Body or SourceFile parameters.' in /Users/ok/Projects/s3/Aws/Common/Client/UploadBodyListener.php:91 

किसी भी सुराग?

+0

मेरे मामले में यह था, क्योंकि मैं ** upload_max_filesize पर एक सीमा थी में बदलने के लिए * * और ** post_max_size ** क्योंकि $ source_file नहीं आती है (शून्य है), सर्वर $ source_file> upload_max_filesize या post_max_size मान्य करता है। –

उत्तर

27

क्षमा करें मैं ठीक हो गया है:

यह सिर्फ था इस

'SourceFile' => $source_file, 

को

'Body' => $source_file, 
+0

अच्छा काम, धन्यवाद – Elby

+0

हाय क्या आप कृपया मेरी मदद कर सकते हैं। एक ही समारोह का उपयोग करने का प्रयास करते समय मुझे 403 प्रतिक्रिया मिल रही है। – ARUN

+0

धन्यवाद @ सबाआंग, लेकिन क्यों? प्रलेखन का कहना है http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#uploading-a-file संस्करण sdk 2 –

संबंधित मुद्दे