本文参加又拍云原创技术征文活动

注册&实名认证

注册我就不说了,大家自行前往又拍云注册就行。

注册之后需要实名认证,否则无法使用,但由于我已经实名认证了(当时没截图),网上也很难找到截图,我找了一张很模糊的,不过还是能看清的

认证方式: 支付宝芝麻信用有700分以上选支付宝芝麻信用认证,没有的话选人工(选人工应该要上传手持身份证的照片)
所属行业: 我的是博客,所以我选的是门户网站→博客
网站/产品: 就填你的网站名称(暂时没有就随便想一个)
网站地址: 写你自己搭建的博客域名,没有的话用csdn,博客园,新浪博客之类的博客地址,再没有的话好像也可以不写
个人名称: 写你的姓名(跟身份证要一样)
身份证号码: 如实填写,否则无法通过实名认证

创建存储桶

登录后,点击页面右上角的控制台,然后选择云产品→云存储

点击右上角创建一个服务(在这里叫服务,其它云一般叫“存储桶”,英文“bucket”)

按下图填写,其中加速按你的需求,但如果选择全球加速,价格肯定比国内加速贵;操作员如果你之前没有就需要新建并授权,因为调用api需要一个账号密码,但这个账号密码并不是你注册又拍云的那个账号密码,而是要在这里新建一个,叫“操作员”

测试操作员账号及默认域名

又拍云的对象存储是支持直接使用ftp登录的,这里我使用filezilla登录(其它ftp工具也类似)。

打开filezilla,如下图所示,点击左上角的“Site Manager”图标(也可直接点击菜单FileSite Manager)进入以下界面,然后按下图填写参数

如果ftp能连接上,也能上传文件,说明操作员账号没啥问题,连不上可能是前面忘了授权,可以点击右上角用户名→账户管理

然后点击操作员→管理,查看是否已经给了这个操作员权限,如果没有给,则给它加上权限,然后再试,应该就没问题了

另外,我们还可以在网页上上传文件

创建一个服务后,又拍云默认会给我们一个测试域名,域名结构为”https://服务名.test.upcdn.net“,其实也可以在控制台中看到,点击上图中的“配置”→选择域名管理选项卡(实际上默认就是该选项卡)→滚动到最底下即可看见送的测试域名。

使用php分片上传文件

REST API文档,其中并行式断点续传和串行式断点续传,就是分片上传了

不过又拍云有写好的php-sdk,就不用我们自己写这个,直接传参就行。

创建一个文件夹UploadToUpyun,在终端中进入该文件夹,使用composer安装sdk(没有composer命令请自行安装,都0202年了应该都有吧?)

composer require upyun/sdk

安装完成后,在UploadToUpyun文件夹中创建一个index.php,代码如下,注释已经写的非常清楚,填上你的参数即可正常运行,相信没有人不会

<?php
require 'vendor/autoload.php';use Upyun\Config;
use Upyun\Upyun;//你自己创建的服务的名称
$serviceName = 'YOUR_SERVICE_NAME';
//操作员账号
$operator = 'YOUR_OPERATOR_NAME';
//操作员密码
$password = 'YOUR_OPERATOR_PASSWORD';
//要上传到哪个目录下
$directory = '/UploadToUpyun/test/';
//要上传的文件的绝对路径(请换成你电脑上一个图片文件的路径)
$uploadFilePath = '/Users/bruce/Downloads/Ts8CYigv.png';
//上传文件名,为什么上传文件名要叫key而不叫filename呢?因为对象存储其实就是一个key value
//的存储结构,你可以认为它就是个redis,key就是redis键名,value就是这个key对应的内容。
$key = basename($uploadFilePath);
//又拍云默认域名在:云存储→选择一个服务并点配置→配置的第一项默认就是域名管理→滚动到最后就能看到默认域名
$defaultDomain = 'http://' . $serviceName . '.test.upcdn.net';//在对象存储中,其实并没有实际意义上的"目录"(或者叫"文件夹"),整个文件夹和最后的key一起,组成的一个整体也是key
//举例:我要把文件存到"2020/06/02/test.jpg",那么这整个就是一个key,而内容当然就是test.jpg这张图片的二进制数据了。
if($directory){//真正使用时,$directory可能是用户传过来的,在不知道用户是否写了右斜杠的情况下,统一先去掉再添加一个$key = rtrim($directory, '/') . '/' . $key;
}//使用又拍云php-sdk上传文件非常方便,很new一个config对象
$serviceConfig = new Config($serviceName, $operator, $password);
// 15728640 = 15M,如果文件大于15M,则使用并行分块上传
if(filesize($uploadFilePath) > 15728640){/* uploadType有两个值- BLOCK : 串行分块上传- BLOCK_PARALLEL : 并行分块上传*///然后可对new出的config对象的属性继续设置参数(有哪些参数可直接查看Config类: vendor/upyun/sdk/src/Upyun/Config.php)//设置uploadType=BLOCK_PARALLEL表示使用并行分片上传$serviceConfig->uploadType = 'BLOCK_PARALLEL';
}
$client = new Upyun($serviceConfig);
$fp = fopen($uploadFilePath, 'rb');
$retArr = $client->write($key, $fp);
// var_dump($retArr);exit;/** 返回的$retArr的值* array(6) {'x-upyun-content-length' =>string(5) "47028"'x-upyun-height' =>string(3) "473"'x-upyun-content-type' =>string(9) "image/png"'x-upyun-file-type' =>string(3) "PNG"'x-upyun-width' =>string(3) "839"'x-upyun-frames' =>string(1) "1"}*///我们随便拿一个元素来判断是否上传成功
if(isset($retArr['x-upyun-content-length'])){//在实际使用中,$key可能是用户传过来的,在不知道$key是否以斜杠开头的情况下,统一先去掉再自己添加一个echo $defaultDomain . '/' . ltrim($key);
}else{echo 'Upload failed.';
}

好了,到这里就写完了,enjoy!

PHP分片上传文件到又拍云对象存储相关推荐

  1. 小程序用thinkPHP上传文件到腾讯云对象存储空间

    <?php/*** Created by PhpStorm.* User: Administrator* Date: 2017/11/22* Time: 10:48*/namespace Hom ...

  2. FastDfs分片上传文件实战

    1.引入的依赖 <!--redis依赖配置--> <dependency><groupId>org.springframework.boot</groupId ...

  3. Python3爬取迅捷语音转文字(包含持久化登陆和分片上传文件)

    前言 在这里我就不再一一介绍每个步骤的具体操作了,因为在上一次爬取今日头条数据的时候都已经讲的非常清楚了,所以在这里我只会在重点上讲述这个是这么实现的,如果想要看具体步骤请先去看我今日头条的文章内容, ...

  4. 上传文件慢,SpringBoot分片上传文件

    Java上传文件慢,大文件上传卡顿,请求超时怎么办? 话不多说直接上代码,代码复制过去可以直接使用 第一步:创建后端代码 package cn.leon.demo.rest;import lombok ...

  5. 【转载】前端上传文件,python作为后端接收并保存到本地--Tornado上传文件--分片上传文件--更换pip下载源

    背景:在改造caffe自带demo时,增加了一个更新模型的功能,需要将用户训练好的caffemodel上传到服务器,并替换到已经存在的caffemodel文件,重新加载上传的caffemodel文件并 ...

  6. excel oss 上传_java实现上传文件到oss(阿里云)功能示例

    本文实例讲述了java实现上传文件到oss(阿里云)功能.分享给大家供大家参考,具体如下: 做这个功能之前我们需要导入阿里云OSS官方提供的工具包 aliyun-sdk-oss-2.5.0.jar 这 ...

  7. 【上传文件】基于阿里云的视频点播VOD、对象存储OSS实现音视频图片等文件上传

    一.效果演示 a.测试界面初始化 b.点击[上传视频] c.点击[开始上传] d.点击[上传音频]选择音频之后点击[开始上传] c.点击[上传图片],注意图片上传为单按钮,选择文件之后自动完成上传 d ...

  8. 通过COS上传文件至腾讯云

    最近看了一下上传文件至腾讯云.腾讯官方提供的API,cloud.tencent.com/document/pr- 文档上传 文档上传首页要首先引入腾讯云封装好的cos-js-sdk-v5.js文件,然 ...

  9. 本地WinSCP上传文件到腾讯云服务器显示Permission Denied

    本地WinSCP上传文件到腾讯云服务器显示 Permission Denied 从字面看,就是没有权限.这时我首先想到了腾讯云服务器的安全组.先去设置安全组. 1.设置安全组 我们用的是腾讯的云服务器 ...

  10. 上传文件到腾讯云存储桶

    上传文件到腾讯云存储桶 一,配置腾讯云Cos 流程图 第一步,注册腾讯云账号 第二步,选择帐户 填写个人信息 第三步扫码授权 手机端授权 第四步点击免费产品 五步选择对象存储Cos 六步开通服务 七步 ...

最新文章

  1. 如何选择一线城市和二线城市?
  2. ping无法访问目标主机 0丢失_预渗透之目标识别
  3. Java编程思想 第十三章:字符串
  4. 云计算,拼的就是运维
  5. android读写文件的,Android读写文件
  6. html5 can,微软想要从HTML5中分离Can
  7. 宝宝头三年至关重要,不看悔掉肠子
  8. 各种搜索算法比较--2015年7月26日16:42:45V1.0版
  9. 开工第一天,老板补发年终奖,一箱18元的冰棍
  10. python和CSV
  11. numeric比较大小 数据库_Liquibase 数据库版本管理工具:3. changeSet 变更集详解
  12. 利用迅雷提供的接口从磁力链得到bt种子文件
  13. 服务器硬盘和普通硬盘驱动安装,固态硬盘与硬盘驱动器的区别及怎样选择
  14. [DAX] FORMAT函数
  15. 南大通用GBase8s 常用SQL语句(150)
  16. 如何制作视频画中画?制作画中画视频的方法
  17. 【30天从入门到放弃】我的机器学习之路 4
  18. 美光科技面试经验总结(2017-1-6)
  19. 获取多个字符串公共的前缀部分
  20. Win7系统很卡应该如何解决?[系统天地]

热门文章

  1. zabbix Lack of free swap space
  2. 进化算法——反向学习
  3. win10 休眠设置无效_win10怎么设置不休眠?win10休眠设置教程--系统之家
  4. VS一个解决方案中有多个项目,如何快速选择启动项
  5. 25种提高网页加载速度的方法和技巧
  6. 如何优化网站才能让网站打开速度更快
  7. windows10自带屏保设置
  8. 百度云破解不限速版(绿色免安装)
  9. 令人眼前一亮的IDEA 2021
  10. 电信家庭宽带光猫端口映射实现外网访问家庭内网