easyswoole - 基于swoole扩展实现的一款高性能php框架

OSS云存儲

安裝

composer require easyswoole/oss

阿里云調用

根據阿里云官方sdk修改,全部方法都一致,走通了所有官方的client請求類單元測試,全部調用方法都和阿里云一致 文檔可查看阿里云官方文檔:https://help.aliyun.com/document_detail/32099.html?spm=a2c4g.11186623.2.17.de715d26YNLCah#concept-32099-zh

<?php
/**
 * Created by PhpStorm.
 * User: Tioncico
 * Date: 2019/11/20 0020
 * Time: 15:28
 */
include "./vendor/autoload.php";
include "./phpunit.php";

go(function (){

    $config = new \EasySwoole\Oss\AliYun\Config([
        'accessKeyId'     => ACCESS_KEY_ID,
        'accessKeySecret' => ACCESS_KEY_SECRET,
        'endpoint'        => END_POINT,
    ]);
    $client = new \EasySwoole\Oss\AliYun\OssClient($config);
    $data = $client->putObject('tioncicoxyz','test',__FILE__);
    var_dump($data);
});

部分方法沒走通單元測試

由于有些方法可能是測試環境問題,未走通,可能出現問題(一般不會有問題),需要大家注意
列出走不通單元測試的方法,以供大家參考:

  • addBucketCname 提示: NoSuchCnameInRecord: No such cname be found in record
  • testDeleteCname 提示: CnameDenied: The cname belongs to another user.

以下2個方法為callback走不通,應該不影響

  • \EasySwoole\Oss\Tests\AliYun\CallbackTest::testMultipartUploadCallbackNormal 提示: CallbackFailed: Response body is not valid json format.
  • \EasySwoole\Oss\Tests\AliYun\CallbackTest::testPutObjectCallbackNormal 走不通

Symlink 類方法全走不通,應該不影響,提示: bucket is not allowed empty或者The specified key does not exist.

七牛云調用

根據七牛云官方sdk修改,走通了oss的大部分單元測試,用法和七牛云oss完全一致

操作文檔可直接查看七牛云官方文檔 https://developer.qiniu.com/kodo/sdk/1241/php

include "../../vendor/autoload.php";
include "../../phpunit.php";
go(function (){

    $auth = new \EasySwoole\Oss\QiNiu\Auth(QINIU_ACCESS_KEY,QINIU_SECRET_KEY);

    $key = 'formPutFileTest';
    $token = $auth->uploadToken('tioncico', $key);
    $upManager = new \EasySwoole\Oss\QiNiu\Storage\UploadManager();
    list($ret, $error) = $upManager->putFile($token, $key, __file__, null, 'text/plain', null);
    var_dump($ret,$error);
});

部分方法沒走通單元測試

由于某些可能是測試環境問題,有部分方法未走通單元測試,需要大家注意,列出走不通的單元測試的方法,以供大家參考

  • \EasySwoole\Oss\Tests\QiNiu\BucketTest::testPrefetch 未走通,提示:{"error":"bucket source not set"}
  • PfopTest 類方法未走通,提示{"error":"no such bucket"}
  • \EasySwoole\Oss\Tests\QiNiu\ResumeUpTest::test4ML2 方法未走通,一直卡住,不建議使用該方法上傳文件,請使用 \EasySwoole\Oss\Tests\QiNiu\ResumeUpTest::test4ML 方法上傳

七牛云設置超時

官方sdk沒有設置超時的邏輯,在本組件中新增加了,設置方法如下:

\EasySwoole\Oss\QiNiu\Config::setTimeout(3);
\EasySwoole\Oss\QiNiu\Config::setConnectTimeout(5);

騰訊云調用

騰訊云調用和原來的方法基本一致,操作文檔可直接查看騰訊云官方文檔:https://cloud.tencent.com/document/product/436/12266

<?php
include "../../vendor/autoload.php";
include "../../phpunit2.php";
go(function (){
//config配置
    $config = new \EasySwoole\Oss\Tencent\Config([
        'appId'     => TX_APP_ID,
        'secretId'  => TX_SECRETID,
        'secretKey' => TX_SECRETKEY,
        'region'    => TX_REGION,
        'bucket'    => TX_BUCKET,
    ]);
    //new客戶端
    $cosClient = new \EasySwoole\Oss\Tencent\OssClient($config);

    $key = '你好111.txt';
    //生成一個文件數據
    $body = generateRandomString(2 * 1024  + 1023);
    //上傳
    $cosClient->upload($bucket = TX_BUCKET,
        $key = $key,
        $body = $body,
        $options = ['PartSize' => 1024 + 1]
    );
    //獲取文件內容
    $rt = $cosClient->getObject(['Bucket' => TX_BUCKET, 'Key' => $key]);
    var_dump($rt['Body']->__toString());
});

function generateRandomString($length = 10)
{
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, strlen($characters) - 1)];
    }
    return $randomString;
}

補充

大部分方法已經兼容,使用方法和騰訊云官方完全一致,但還有些注意事項:

  • 上傳文件使用了SplStream 作為流文件管理
  • 下載文件使用了SplStream 作為流文件管理(上面的$rt['Body']就是SplStream對象)

部分方法沒走通單元測試

由于騰訊云sdk使用了guzzle 庫,改動非常麻煩,所以有部分單元測試沒通過,具體方法如下,希望大家注意:

  • PutBucketAcl 方法,相關的單元測試全部提示Access Denied.(官方sdk也這個提示)
  • copy 方法,小文件提示You have no authority to read the source file 大文件直接無法走通無法使用(官方sdk也走不通)
主站蜘蛛池模板: 新乡市大成数控机械有限公司| 中国气象数据_天气数据接口_天气实况api-气象大数据平台 | 面馆加盟_重庆小面加盟_特色面馆加盟首选老城街 | 机锋网-畅享科技品质生活,尽在机锋网 | 液体灌装机-酱料灌装机-全自动灌装机-旋盖机-铝箔封口机-贴标机厂家-迈特威自动化设备(天津)有限公司" | 铜陵耐火砖|铜陵耐火浇注料|铜陵耐火材料|铜陵市金钟物资经营部【官网】 | 注塑加工,无锡塑料件加工,注塑模具加工厂家-无锡富立康精密模塑有限公司 | 烘干机|烘干房|网带烘干机|滚筒烘干机|炒货机-河南曼瑞通机械有限公司 | 艺术网 - 大型艺术类权威门户站 艺考培训-中影人教育 【官网】-中国艺考教育的引航者 | 制冷加热循环机,密闭高低温一体机,优质密闭低温冷冻机-无锡冠亚恒温制冷技术有限公司 | 守护者官网-儿童安全卫士 | 柯赛德斯-加美润滑油-专业做汽车工业润滑油品牌加盟代理 | 智能化解决方案 智能家居 家庭影院 灯光音箱 会议室报告厅 剧场剧院 指挥中心 大数据中心_沈阳天哲科技有限公司 | 凝汽器换管-胶球清洗装置-二次滤网_连灵动 | 银马全自动免烧砖机设备厂家,提供免烧砖机价格报价及生产视频 | 粘土耐火砖,低气孔耐火砖-山东耐火材料 | 西安泰富西玛电机有限公司总部-电机-高压电机-西玛电机-西安西玛电机-泰富西玛电机-西安电机厂-西玛电机销售 | 粮食烘干机|玉米烘干机|稻谷烘干机|小麦烘干机|大型连续烘干塔|500吨连续烘干塔|钢板仓|-郑州新光矿山机械制造有限公司 | 履带式移动破碎站-移动筛分站-移动碎石机-破碎机_山东奥凯诺矿机 | 济南东唐包装制品有限公司 | 注塑模具厂,注塑模具加工,塑胶模具加工-东莞世邦塑胶官网 | 秦皇岛图成玻璃_横切机,琴键落板,堆垛机械手,玻璃钢化设备,掰边机,铺纸机,水平堆垛机+超大板堆垛机,纵掰纵分,下片机,冷端优化切割 | 粮食烘干机|玉米烘干机|稻谷烘干机|小麦烘干机|大型连续烘干塔|500吨连续烘干塔|钢板仓|-郑州新光矿山机械制造有限公司 | 首页--南京俊全科技有限公司,环保监测无人机,大疆无人机,农用无人机,植保无人机,巡检无人机,无人机环境监测仪,消防,无人机,航拍测绘,固定翼无人机,无人机电力巡检,四旋翼无人机 | 专利申请|知识产权贯标|商标提异议|国外专利申请-润平知识产权 | 金属标牌,镍电铸,电铸铭牌,标牌定制-青岛大东电铸标牌制作厂家 | 医疗器械招标网—打造医械厂家专业服务平台 | 消防车厂家_东风水罐泡沫消防车价格图片吨位-湖北新东日专用汽车有限公司 | 碳化硅微粉_超细碳化硅微粉-潍坊凯华碳化硅微粉有限公司 | 南昌运通工程机械租赁有限公司| 湖南众一离心机股份有限公司_活塞推料离心机_沉降离心机_卧式刮刀离心机 | 长沙变频器维修,变频器维修,ABB变频器维修,西门子变频器维修,施耐德变频器维修,伺服驱动器维修,工业机器人维修,20年专业工控电气维修,长沙文铖电气设备有限公司_长沙文铖电气设备有限公司 | 金属探测机_食品金属探测仪_食品金属探测器_广东善安金属检测机 金属剪切机,金属打包机,废钢剪切机,废铁压块机,金属压块机,废纸打包机,重废龙门剪,废钢龙门剪,箱式剪,液压剪切机-瑞顿机械装备制造江阴有限公司 | 南京企业宣传片制作,广告形象片,影视制作,宣传片拍摄,微电影拍摄制作公司 | 宣城眼科医院-全飞秒激光治近视-专注眼科二十二年 | 汽修学校|汽车维修学校收费|全国职业技校汽修-北京万通汽修学校 汽车轴承|圆锥滚子轴承|轴承生产厂家|赛襄轴承 | 气体报警器,有毒气体报警器,可燃气体探测器,乙炔气体报警器,可燃气体检漏仪,便携式气体检测仪,气体报警控制器-山东如特安防设备有限公司 | 混凝土修补-清水混凝土保护剂-仿清水混凝土-混凝土装修-混凝土色差处理-混凝土色差修复剂-德州唐荣建筑装饰工程有限公司 | 生物除臭剂-养殖场垃圾除臭剂-垃圾填埋场除臭剂-成都微菌环境 | 深圳办公室装修_高端写字楼设计费用_企业装修报价公司-深圳长红装饰 | 轻型防化服|重型防化服|全封闭防化服|济南三安安全防护设备有限公司 |