php使用oss web直传的方法

发布时间:2021-05-12 12:19:20 作者:小新
来源:亿速云 阅读:288

这篇文章主要介绍了php使用oss web直传的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创建OssUploadSignature.php

<?php

namespace Service;class OssUploadSignature{

    private $accessKeyId;
    private $accessKeySecret;
    private $expire = 300; // 5分钟有效期
    private $bucketHost; // Bucket 域名
    private $conditions = [ // 限制
        [
            'content-length-range', // 内容限制
            0,                  // 最小上传
            10 * 1024 * 1024 // 最大上传10m
        ], [
            0 => 'starts-with',
            1 => '$key', // 必须带key
            2 => 'images/', // 如:/images  只能放在/images的路径
        ]
    ];

    public function setBucketHost($bucketHost)
    {
        $this->bucketHost = $bucketHost;
        return $this;
    }

    public function setAccessKeyId($accessKeyId)
    {
        $this->accessKeyId = $accessKeyId;
        return $this;
    }

    public function setAccessKeySecret($accessKeySecret)
    {
        $this->accessKeySecret = $accessKeySecret;
        return $this;
    }

    public function signatureConfig()
    {
        $end = time() + $this->expire;
        $arr = [
            'expiration' => $this->gmt_iso8601($end),
            'conditions' => $this->conditions,
        ];
        $base64Policy = base64_encode(
            json_encode($arr)
        );
        $signature = base64_encode(hash_hmac('sha1', $base64Policy, $this->accessKeySecret, true));
        return [
            'OSSAccessKeyId' => $this->accessKeyId,
            'policy' => $base64Policy,
            'signature' => $signature,
            'expire' => $end,
            'bucketHost' => $this->bucketHost        ];
    }


    // fix bug https://connect.console.aliyun.com/connect/detail/162632
    public function gmt_iso8601($time)
    {
        return (new \DateTime(null, new \DateTimeZone('UTC')))->setTimestamp($time)->format('Y-m-d\TH:i:s\Z');
    }}

运行

php使用oss web直传的方法

php使用oss web直传的方法

Postman测试

php使用oss web直传的方法

php使用oss web直传的方法

小心bug

bucketHost 可以在 oss 查看。

php使用oss web直传的方法

php是什么语言

php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

感谢你能够认真阅读完这篇文章,希望小编分享的“php使用oss web直传的方法”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. ThinkPHP 5如何使用OSS
  2. 关于阿里云oss获取sts凭证 app直传 python的实例

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php web

上一篇:html中table边框颜色的设置方法

下一篇:怎么提升css性能

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》