前言
云存储是一种网上在线存储(英语:Cloud storage)的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,而非专属的服务器上。托管(hosting)公司运营大型的数据中心,需要数据存储托管的人,则透过向其购买或租赁存储空间的方式,来满足数据存储的需求。数据中心营运商根据客户的需求,在后端准备存储虚拟化的资源,并将其以存储资源池(storage pool)的方式提供,客户便可自行使用此存储资源池来存放文件或对象。实际上,这些资源可能被分布在众多的服务器主机上。
云存储这项服务乃透过Web服务应用程序接口(API), 或是透过Web化的用户界面来访问。
云存储优点
1、云存储属于分布式的,因此可用性比较好;
2、云存储一般都是三副本模式,当数据丢失后,可通过副本恢复,可靠性高;
3、云存储能够提高系统的安全性;
4、云存储网络资源丰富,能够提供BGP多线骨干网络,使全国各地访问流程;
5、云存储具备海量数据处理能力,能够做到1个到数十亿的文件处理;
6、使用云存储可降低运维成本,因为云存储供应商可提供专业的技术支持;
7、云存储资源利用率高,能够按需进行付费,从而降低了运营成本、避免资源浪费。
目前在解决数据存储问题上,现有的云存储产品已经能够做到在效率和成本上的同步降低,所以,摒弃原始的存储方式,选择云存储会是个人、企业的必然选择。
安装扩展包
composer require mrwanghongda/oss-sdk -vvv
框架中使用
/**
* 七牛云
*/
const OSS_QINIU = 'qiniu';
/**
* 腾讯云
*/
const OSS_TENCENT = 'tencent';
/**
* 阿里云
*/
const OSS_ALIYUN = 'aliyun';
七牛云上传
//appid 填写七牛AccessKey 参考链接 https://portal.qiniu.com/user/key
//appkey 填写七牛SecretKey 参考链接 https://portal.qiniu.com/user/key
//region 默认为空
//bucket 填写自己的桶名(存储空间)
$config = new OssConfig('appid', 'appKey', '');
$ossObj = (new OssFactory(OssFactory::OSS_QINIU))->getOssService();
$ossObj->init($config)->bucket('bucket');
// 上传文件
$path = $request->file('file')->getPathname();
$result = $ossObj->put("test.jpg", $path);
// 删除文件
$result = $ossObj->delete(['test.jpg']);
dd($result);
腾讯云上传
//appid 替换为用户的 AccessKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
//appkey 替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
//region 替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket,例:ap-shanghai
//bucket 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看,例:1908-1257984403
$config = new OssConfig('appid', 'appKey', 'region');
$ossObj = (new OssFactory(OssFactory::OSS_TENCENT))->getOssService();
$ossObj->init($config)->bucket('bucket');
// 上传文件
$path = $request->file('file')->getPathname();
$result = $ossObj->put("test.jpg", $path);
// 删除文件
$result = $ossObj->delete(['test.jpg']);
dd($result);
阿里云上传
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录https://ram.console.aliyun.com创建RAM账号。
$accessKeyId = "<yourAccessKeyId>";
$accessKeySecret = "<yourAccessKeySecret>";
// Endpoint以杭州为例,其它Region请按实际情况填写。
$region = "http://oss-cn-hangzhou.aliyuncs.com";
// 填写Bucket名称,例如examplebucket。
$bucket= "ninteySevenOss";
$config = new OssConfig($accessKeyId, $accessKeySecret, $region);
$ossObj = (new OssFactory(OssFactory::OSS_ALIYUN))->getOssService();
$ossObj->init($config)->bucket($bucket);
// 上传文件
$path = $request->file('file')->getPathname();
$result = $ossObj->put("test.jpg", $path);
// 删除文件
$result = $ossObj->delete(['test.jpg']);
dd($result);