gpt4 book ai didi

php - 如何将 ContentType 添加到 AWS PHP SDK MultiPartUploader

转载 作者:行者123 更新时间:2023-12-01 09:53:28 25 4
gpt4 key购买 nike

我对如何在 AWS PHP SDK 中将简单的 ContentType 元数据添加到 MultiPartUploader 进行了高低搜索。文档特别提到了如何为 PutObject 执行此操作,但没有提及如何使用 MultiPartUploader 执行此操作。

我已经尝试了我可以在网上找到的所有方法,但没有任何效果,而且我的文件总是被设置为 application/octet-stream。

有人对这个有经验么?这是我的代码:

$uploader = new MultipartUploader($this->s3, $local_path, [
'bucket' => env('AWS_BUCKET'),
'key' => $path .'/'. $filename,
'contentType' => 'video/mp4', // have tried this
'metaData' => [ // have tried this (all well as all variations of caps)
'contentType' => 'video/mp4',
]
]);

do
{
try
{
$result = $uploader->upload();
}
catch (MultipartUploadException $e)
{
$uploader = new MultipartUploader($this->s3, $local_path, [
'state' => $e->getState(),
]);
}
}
while (!isset($result));

读完 MultiPartUploader 类,看起来应该是自动设置了 ContentType ,但是没有设置。

我正在使用 v3 of the SDK

任何建议将不胜感激!

最佳答案

我在发布这个问题后就想通了!我将发布答案,以便如果其他人遇到此问题,他们可以在这里查看。

我在问题中链接的页面有答案,只是与 ContentType 没有特别的关系!

这是工作代码:

$uploader = new \Aws\S3\MultipartUploader($this->s3, $local_path, [
'bucket' => env('AWS_BUCKET'),
'key' => $path .'/'. $filename,
'before_initiate' => function(\Aws\Command $command) use ($mime_type) // HERE IS THE RELEVANT CODE
{
$command['ContentType'] = $mime_type; // video/mp4
}
]);

do
{
try
{
$result = $uploader->upload();
}
catch (\Aws\Exception\MultipartUploadException $e)
{
$uploader = new \Aws\S3\MultipartUploader($this->s3, $local_path, [
'state' => $e->getState(),
]);
}
}
while (!isset($result));

return $result ? $result['ObjectURL'] : null;

我希望这可以帮助其他人在 future !

关于php - 如何将 ContentType 添加到 AWS PHP SDK MultiPartUploader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33373766/

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