美文网首页
阿里云OSS设置Content-Type

阿里云OSS设置Content-Type

作者: 流浪君子 | 来源:发表于2020-05-22 09:10 被阅读0次

    发现阿里云OSS默认Content-Type类型都是application/octet-stream

    这样上传图片等文件的时候,浏览器不能直接打开,直接下载,很不方便

    这个是提交阿里工单,给到的回复

    【问题定义】

    oss修改content-type

    【处理建议】

    您好,关于批量修改meta信息的问题,推荐您使用两种方法:

    1、使用sdk进行接口的调用处理,参考下:(Java为例子)

    https://help.aliyun.com/document_detail/84840.html?spm=a2c4g.11186623.6.811.66f0c1f65NwVs5

    2、使用ossutil命令行工具进行处理,支持前缀以及目录之类的方式哈。

    参考下:

    https://help.aliyun.com/document_detail/120056.html?spm=a2c4g.11186623.6.735.181165d32BkZMj

    我用的语言是php,几乎没有解决

    用的laravel5.2框架,OSS用的johnlui/AliyunOSS

    git地址是:https://github.com/johnlui/AliyunOSS

    查了很多资料,一直进入的误区是Content-Type是在$options = [];里面

    官方文档也是

    https://help.aliyun.com/document_detail/88508.html?spm=a2c4g.11186623.6.1097.4ffe720fx7gxsu

    实际上查看johnlui/AliyunOSS代码

    在路径vendor/johnlui/aliyun-oss/src/AliyunOSS.php

    修改AliyunOSS.php文件里uploadFile方法

    public function uploadFile($key, $file, $options = [])

      {

        $handle = fopen($file, 'r');

        $value  = $this->ossClient->putObject(array_merge([

          'Bucket'        => $this->bucket,

          'Key'           => $key,

          'Content'       => $handle,

          'ContentLength' => filesize($file),

     'ContentType' => getimagesize($file)['mime'],    //增加这一行

        ], $options));

        fclose($handle);

        return $value;

      }

    测试,修改成功

    相关文章

      网友评论

          本文标题:阿里云OSS设置Content-Type

          本文链接:https://www.haomeiwen.com/subject/nevfahtx.html