gpt4 book ai didi

php - 如何为 AWS S3 图像添加 Http header

转载 作者:可可西里 更新时间:2023-11-01 16:37:43 26 4
gpt4 key购买 nike

这是我的代码

function s3UploadImage($tmpFile,$file) {
$tmpLoc=$bucket.$file;
$s3 = new S3(awsAccessKey, awsSecretKey);
$s3->putBucket($bucket, S3::ACL_PUBLIC_READ);
if($s3->putObjectFile($tmpFile, $bucket , $tmpLoc, S3::ACL_PUBLIC_READ, array(
"Cache-Control" => "max-age=94608000",
"Expires" => gmdate("D, d M Y H:i:s T",
strtotime("+3 years")),$contentType) )
{
$msg = "S3 Upload Successful.";
// $s3file='https://xxxxxxxxxxxxx.xxxxxxx/'.$tmpLoc;
$s3file='https://xxxxxxxxxxxxxxx.xxxxxxx/'.$tmpLoc;
// echo "<img src='$s3file'/>";
echo 'S3 File URL:'.$s3file;
$status=true;
}
else{
$msg = "S3 Upload Fail.";
$status=false;
}
return $status;
}

在这段代码中我添加了 array("Cache-Control"=> "max-age=31536000","Expires"=> gmdate("D, d M Y H:i:s T", strtotime("+3 years ")) 它只能正常工作。但它是这样添加的

  x-amz-meta-cache-control  public,max-age=31536000
x-amz-meta-expires Wed, 11 Dec 2017 10:47:59 GMT

在谷歌页面速度测试工具中仍然显示未指定过期但是如果我使用 s3 浏览器等工具在 s3 中直接添加 http Header 。它工作正常。它像这样添加

Expires Wed, 15 May 2019 20:00:00
Cache-Control max-age=31536000, public

使用 api 如何添加这样的 http header 。

最佳答案

您在此处添加的 header 就像自定义元数据。在创建自定义元数据时,您的 SDK 将附加 x-amz-meta- 以及您的元数据 key 以识别它。您必须将此 header 设置为,

$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'SourceFile' => $filepath,
'ContentType' => 'text/plain',
'Expires' => 'Wed, 15 May 2019 20:00:00',
'CacheControl' => 'max-age=31536000, public',
'ACL' => 'public-read',
'StorageClass' => 'REDUCED_REDUNDANCY',
'Metadata' => array(
'param1' => 'value 1',
'param2' => 'value 2'
)
));

关于php - 如何为 AWS S3 图像添加 Http header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27441665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com