我正在使用Amazon S3 PHP类上传图像,但未设置缓存标头.这是我正在使用的电话.
$s3->putObjectFile(
$image_location,
"bucketname",
$image_file_name,
S3::ACL_PUBLIC_READ,
array(
"Cache-Control" => "max-age=315360000",
"Expires" => gmdate("D, d M Y H:i:s T", strtotime("+5 years"))
)
);
Run Code Online (Sandbox Code Playgroud)
我为上传的图片获得的标题响应是:
Date: Tue, 04 Oct 2011 04:21:09 GMT x-amz-request-id: B6BAAAAD9B460160 Content-Length: 34319 x-amz-id-2: Oxxx1hIG2nNKfff3vgH/xx/dffF59O/7a1UWrKrgZlju2g/8WvTcBpccYToULbm Last-Modified: Tue, 04 Oct 2011 04:19:20 GMT Server: AmazonS3 ETag: "4846afffbc1a7284fff4a590d5acd6cd" Content-Type: image/jpeg Accept-Ranges: bytes
我不熟悉Amazon S3 PHP类,但快速查看文档后发现该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);
?>
Run Code Online (Sandbox Code Playgroud)
但为什么不考虑使用官方的Amazon SDk for 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());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4563 次 |
| 最近记录: |