【问题标题】:How to add ContentType to AWS PHP SDK MultiPartUploader如何将 ContentType 添加到 AWS PHP SDK MultiPartUploader
【发布时间】:2016-01-27 04:56:54
【问题描述】:

关于如何在 AWS PHP 开发工具包中将简单的 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

任何建议将不胜感激!

【问题讨论】:

    标签: php amazon-web-services aws-php-sdk


    【解决方案1】:

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

    我在问题中链接的页面有答案,只是与 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;
    

    我希望这对将来的其他人有所帮助!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 2017-09-24
    • 2020-12-19
    相关资源
    最近更新 更多