帝国CMS模板大全
www.admin99.cn
www.92cms.cn 帝国CMS模板下载站!,情怀,养站,二次开发!源码需求比较大的一站式会员下载,价更省!!!

php怎么使用oss web直传

本篇文章给大家介绍一下php使用oss web直传。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

前言

直传优点: 无需经过服务器,由前端直传到 oss ,因此可以减少服务器带宽使用 和 加快用户上传速度。

本篇讲的这个不需要安装扩展包,仅有直传功能,是非常轻量的。

我是参考https://github.com/iiDestiny/flysystem-oss来写的,如果你需要在 php 使用其他的 oss 功能,那么扩展包更合适。

创建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');
    }}

运行

Postman测试

小心bug

bucketHost 可以在 oss 查看。

复制 policy 的时候 注意是否有换行符(我都没注意…)

推荐学习:《PHP视频教程》

以上就是php怎么使用oss web直传的详细内容!

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php怎么使用oss web直传》
文章链接:https://www.admin99.cn/8029
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
QQ站长交流群:953950264

登录

找回密码

注册