嗨,我正在尝试用一个新的对象进入一个桶与这个代码:
<?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
任何线索?
对不起,我得到了修复:
只是改变这个
'SourceFile' => $source_file,
至
'Body' => $source_file,