Я не знаком с Amazon S3 PHP Class , но быстрый взгляд на документацию показывает, что метод putObjectFile
устарел, и вместо него следует использовать putObject
.
<?php
// PUT with custom headers:
$put = S3::putObject(
S3::inputFile($file),
$bucket,
$uri,
S3::ACL_PUBLIC_READ,
array(),
array( // Custom $requestHeaders
"Cache-Control" => "max-age=315360000",
"Expires" => gmdate("D, d M Y H:i:s T", strtotime("+5 years"))
)
);
var_dump($put);
?>
Но почему бы не рассмотреть возможность использования официального Amazon SDk для PHP ?
Вы бы использовали create_object
для загрузки файла. У официальных документов есть несколько хороших примеров:
// Instantiate the class
$s3 = new AmazonS3();
$response = $s3->create_object('my-bucket', 'üpløåd/î\'vé nøw béén üpløådéd.txt', array(
'fileUpload' => 'upload_me.txt',
'acl' => AmazonS3::ACL_PUBLIC,
'contentType' => 'text/plain',
'storage' => AmazonS3::STORAGE_REDUCED,
'headers' => array( // raw headers
'Cache-Control' => 'max-age',
'Content-Encoding' => 'gzip',
'Content-Language' => 'en-US',
'Expires' => 'Thu, 01 Dec 1994 16:00:00 GMT',
),
'meta' => array(
'word' => 'to your mother', // x-amz-meta-word
'ice-ice-baby' => 'too cold, too cold' // x-amz-meta-ice-ice-baby
),
));
// Success?
var_dump($response->isOK());