赞
踩
随着云存储的不断发展,文件存储的方式也发生着很大的改变。各类的云存储网盘大家也都不陌生,今天博主教大家如何拥有一个自己的存储系统。
网盘是简而言之虚拟的储存空间,不需要提供硬件设备即可实现文件的存储。也被称为“云盘”。
- <form>
- <input type="file" id="file-input" name="fileContent">
- </form>
相信很多朋友就会纳闷,本来已经是在介绍云存储系统了,又跳出来以各大对象存储为空间的存储。搞什么?第一什么是对象存储?第二如何实现以对象存为存储空间?
1.对象存储:
存储大家都理解。那什么是对象?男女朋友?当然不是!!!
对象存储服务(即文件存储)中的对象指的是比如图片,压缩包,安装包,视频,网站css文件.......(说白了就是各类的文件),主要作用于分担服务器存储压力。
2.以对象存储为存储空间:
与本地存储的主要区别在于,文件存储位置的不同。
这里以腾讯云对象存储举例:
上传本地对象
- <?php
-
- require dirname(__FILE__) . '/../vendor/autoload.php';
-
- $secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
- $secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
- $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
- $cosClient = new Qcloud\Cos\Client(
- array(
- 'region' => $region,
- 'schema' => 'https', //协议头部,默认为http
- 'credentials'=> array(
- 'secretId' => $secretId ,
- 'secretKey' => $secretKey)));
- $local_path = "/Users/xxx/Desktop/exampleobject.txt"; //保存到用户本地路径
-
- try {
- $result = $cosClient->upload(
- $bucket = 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
- $key = 'exampleobject', //此处的 key 为对象键
- $body = fopen($local_path, 'rb')
- );
- // 请求成功
- print_r($result);
- } catch (\Exception $e) {
- // 请求失败
- echo($e);
- }
下载对象
- <?php
-
- require dirname(__FILE__) . '/../vendor/autoload.php';
-
- $secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
- $secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
- $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
- $cosClient = new Qcloud\Cos\Client(
- array(
- 'region' => $region,
- 'schema' => 'https', //协议头部,默认为http
- 'credentials'=> array(
- 'secretId' => $secretId ,
- 'secretKey' => $secretKey)));
- $local_path = "/Users/xxx/Desktop/exampleobject.txt"; //保存到用户本地路径
-
- $printbar = function($totalSize, $downloadedSize) {
- printf("downloaded [%d/%d]\n", $downloadedSize, $totalSize);
- };
-
- try {
- $result = $cosClient->download(
- $bucket = 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
- $key = 'exampleobject',
- $saveAs = $local_path,
- $options= array(
- 'Progress' => $printbar, //指定进度条
- 'PartSize' => 10 * 1024 * 1024, //分块大小
- 'Concurrency' => 5, //并发数
- 'ResumableDownload' => true, //是否开启断点续传,默认为false
- 'ResumableTaskFile' => 'tmp.cosresumabletask' //断点文件信息路径,默认为<localpath>.cosresumabletask
- )
- );
- // 请求成功
- print_r($result);
- } catch (\Exception $e) {
- // 请求失败
- echo($e);
- }
程序演示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。