Ciao Sto cercando di mettere un nuovo oggetto in un secchio con questo codice:PHP Amazon SDK - s3 putObject e impostare corpo
<?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
));
}
}
>
così una volta che faccio per esempio:
?$s3->putObject('myfilename.jpg',get_file_content("temp/image.jpg"));
restituisce errore:
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
qualsiasi traccia ?
Nel mio caso è stato perché ho avuto un limite ** upload_max_filesize * * e ** post_max_size ** perché $ source_file non viene (è null), il server convalida $ source_file> upload_max_filesize o post_max_size. –