请选择 进入手机版 | 继续访问电脑版

体验 COS 与 CDN 服务 for PHP-云服务器玩法在线实验

[复制链接]
查看: 152|回复: 0
发表于 2020-4-11 14:47:49 | 显示全部楼层 |阅读模式
阿里云
实验内容
对象存储(Cloud Object Storage)是稳定安全的云端存储服务,可以存放任意数量和形式的非结构化内容。结合内容分发网络(Content Delivery Network),将内容分发至加速节点,利用全球调度系统使用户在就近节点获取内容。本实验介绍如何在PHP应用中使用COS 与 CDN 服务。

免费在线实验地址:点击进入
实验资源:云服务器,没有云服务器的朋友推荐1折抢购:69元/年的阿里云服务器、或者99元/年的腾讯云服务器

软件环境:CentOS 7.2 64 位


一、CDN 服务申请
实名认证与申请服务
腾讯云提供了 CDN 的加速服务, 阿里云也提供了CDN的加速服务,但使用服务前您需要实名认证

二、使用 COS 服务
开通 COS 并上传文件
CDN 开通后, 我们既可以使用 CDN 全站加速的功能, 也可以使用 CDN 部署资源文件的功能,本实验使用 COS/CDN 超出免费配额可能产生小额费用。

在使用 CDN 部署资源文件的功能前, 我们需要开通腾讯云的 COS 服务, 点击下面的视频了解如何申请该服务

如何申请和使用腾讯云的 COS 服务

COS 文件地址与 CDN 加速地址
文件通过腾讯云官网控制台web页面上传后, 通过查看上传文件信息可以得到形如 Bucket名称-id.cos地区缩写.myqcloud.com/文件名 的 URL 地址, 将该地址中的 cos地区缩写 改为 file 即可得到 CDN 的加速地址.

使用该加速地址来访问的资源文件可以得到更快的响应, 达到加速的目的. 如:

文件地址:
  1. http://cloud-1251435248.costj.myqcloud.com/hello.txt
复制代码
对应的 CDN 地址:
  1. http://cloud-1251435248.file.myqcloud.com/hello.txt
复制代码
cos地址与对应园区的关系
  • costj -- 华北(天津园区)
  • cossh -- 华东(上海园区)
  • cosgz -- 华南(广州园区)
  • cossgp -- 新加坡园区


三、使用 COS SDK for PHP
准备工作
上面介绍了使用浏览器上传文件到 COS 并得到 CDN 地址的方式, 下面介绍如何通过 SDK 的方式使用 COS. 在这之前, 我们需要做一些准备工作

创建相关目录
  1. mkdir -p /data/upload
复制代码
准备相关的文件
执行下面的命令, 在 /data 目录下创建一个名叫upload_example.txt的文件
  1. echo 'Hello World' > /data/upload/upload_example.txt
复制代码
查看appid, secret_id 和 secret_key 信息
如果您 Bucket 的默认域名中包含125开头的 APPID,请使用“API密钥”
如果您 Bucket 的默认域名中包含100开头的项目 ID,请使用“项目密钥”


查看 bucket 属于哪个园区
打开 bucket列表
  • 在列表中点击将要上传的 bucket, 进入详情页
  • 选择 基础配置 tab
  • 查看 基本信息 - 所属地区
  • 华北地区对应 tj, 华南地区对应 gz, 华东地区对应 sh

安装 Git 与 PHP 环境
  1. yum install -y git php php-common php-devel
复制代码
安装 COS 的 PHP SDK
  1. git clone https://github.com/tencentyun/cos-php-sdk-v4 /data/cos-php-sdk-v4
复制代码
修改 SDK 配置
修改 /data/cos-php-sdk-v4/qcloudcos/conf.php 内的 APPID、SECRET_ID、SECRET_KEY 为您的配置。

使用 SDK 上传文件到 COS
在 /data 目录下创建 cos_php_upload.php 文件, 并编辑内容如下

示例代码:/data/cos_php_upload.php
  1. <?php
  2. // 包含cos-php-sdk-v4/include.php文件
  3. require('./cos-php-sdk-v4/include.php');
  4. use qcloudcos\Cosapi;

  5. // 设置COS所在的区域,对应关系如下:
  6. //     华南  -> gz
  7. //     华中  -> sh
  8. //     华北  -> tj
  9. Cosapi::setRegion('');

  10. $bucket = '';                            // 填写你的bucket名
  11. $src = './upload/upload_example.txt';    // 填写要上传到 cos 的文件(含地址), 如 ./upload/upload_example.txt
  12. $dst = 'upload_sample_php.txt';          // 填写上传到 cos 后的文件名称, 如 upload_sample_php.txt

  13. // 上传文件
  14. $ret = Cosapi::upload($bucket, $src, $dst);
  15. var_dump($ret);
复制代码
将你的 bucket 所属的地区码, bucket 名, 需要上传的文件, 上传后的文件名 依次填入后执行
  1. cd /data && php /data/cos_php_upload.php
复制代码
如果调用成功, 会返回类似如下结构的信息:
  1. array(4) {
  2.   ["code"]=>
  3.   int(0)
  4.   ["message"]=>
  5.   string(7) "SUCCESS"
  6.   ["request_id"]=>
  7.   string(36) "NTkyZmM2NzFfOGVhMDY4XzgzMmVfODU1Yjc="
  8.   ["data"]=>
  9.   array(5) {
  10.     ["access_url"]=>
  11.     string(64) "http://detect-1253675457.file.myqcloud.com/upload_sample_php.txt"
  12.     ["resource_path"]=>
  13.     string(40) "/1253675457/detect/upload_sample_php.txt"
  14.     ["source_url"]=>
  15.     string(65) "http://detect-1253675457.cossh.myqcloud.com/upload_sample_php.txt"
  16.     ["url"]=>
  17.     string(76) "http://sh.file.myqcloud.com/files/v2/1253675457/detect/upload_sample_php.txt"
  18.     ["vid"]=>
  19.     string(42) "23c8c295f62f8639cd4dc5cda26b1b4b1496303217"
  20.   }
  21. }
复制代码
点击这里 了解返回的各个字段的含义

在 bucket列表 中选择你刚才填入的 bucket 并查看文件列表, 会发现新增了 upload_sample_php.txt 文件, 证明确实已经成功上传到 COS

如果调用失败, 会返回类似如下的信息:
  1. array(3) {
  2.   ["code"]=>
  3.   int(-62)
  4.   ["message"]=>
  5.   string(22) "ERROR_PROXY_AUTH_APPID"
  6.   ["request_id"]=>
  7.   string(36) "NTkyZmM2ZjhfOGRhMDY4XzViMzdfODc4Njg="
  8. }
复制代码
结合 cos错误码说明 和message字段, 您可以知道发生错误的原因

使用 SDK 移动 COS 文件
COS 提供通过 SDK, 移动同一 bucket 下的文件位置的能力

在 /data 目录下创建 cos_php_move.php 文件, 并编辑内容如下

示例代码:/data/cos_php_move.php
  1. <?php
  2. // 包含cos-php-sdk-v4/include.php文件
  3. require('./cos-php-sdk-v4/include.php');
  4. use qcloudcos\Cosapi;

  5. // 设置COS所在的区域,对应关系如下:
  6. //     华南  -> gz
  7. //     华中  -> sh
  8. //     华北  -> tj
  9. Cosapi::setRegion('gz');

  10. $bucket = '';                   // 填写你的bucket名
  11. $src = '/upload_sample_php.txt'; // 填写要移动的 cos 文件的名称, 如 /upload_sample_php.txt
  12. $dst = '';                      // 填写移动后 cos 文件的名称, 如 /upload_sample_php_move.txt

  13. // 上传文件
  14. $ret = Cosapi::moveFile($bucket, $src, $dst);
  15. var_dump($ret);
复制代码
将你的 bucket 所属的地区码, bucket 名, 需要移动的文件名, 移动后的文件名 依次填入后执行
  1. cd /data && php /data/cos_php_move.php
复制代码
如果调用成功, 会返回类似如下结构的信息:
  1. array(3) {
  2.   ["code"]=>
  3.   int(0)
  4.   ["message"]=>
  5.   string(7) "SUCCESS"
  6.   ["request_id"]=>
  7.   string(36) "NTkyZmNhMDlfOGVhMDY4XzgzMzdfODViMDI="
  8. }
复制代码
在 bucket列表 中选择你刚才填入的 bucket 并查看文件列表, 会发现upload_sample_php.txt文件名字变成了 sample_file_move_php.txt 文件, 证明文件移动成功

使用 SDK 创建 COS 目录
COS 提供通过 SDK, 在 bucket 下创建目录的能力

在 /data 目录下创建 cos_php_create_folder.py 文件, 并编辑内容如下

示例代码:/data/cos_php_create_folder.php
  1. <?php
  2. // 包含cos-php-sdk-v4/include.php文件
  3. require('./cos-php-sdk-v4/include.php');
  4. use qcloudcos\Cosapi;

  5. // 设置COS所在的区域,对应关系如下:
  6. //     华南  -> gz
  7. //     华中  -> sh
  8. //     华北  -> tj
  9. Cosapi::setRegion('gz');

  10. $bucket = '';                   // 填写你的bucket名
  11. $folderName = '/sample_folder_php'; // 填写要创建的目录的名字

  12. // 上传文件
  13. $ret = Cosapi::createFolder($bucket, $folderName);
  14. var_dump($ret);
复制代码
将你的 bucket 所属的地区码, bucket 名, 要创建的目录的名字 依次填入后执行
  1. cd /data && php /data/cos_php_create_folder.php
复制代码
如果调用成功, 会返回类似如下结构的信息:
  1. array(4) {
  2.   ["code"]=>
  3.   int(0)
  4.   ["message"]=>
  5.   string(7) "SUCCESS"
  6.   ["request_id"]=>
  7.   string(32) "NTkyZmNiNmFfZjFlNjlfYmVhXzgxNzRl"
  8.   ["data"]=>
  9.   array(1) {
  10.     ["ctime"]=>
  11.     int(1496304490)
  12.   }
  13. }
复制代码
在 bucket列表 中选择你刚才填入的 bucket 并查看文件列表, 会发现新增了一个sample_folder_php目录, 证明目录创建成功

实验完成
恭喜您已经完成了 CDN 与 COS for PHP 的学习

腾讯云
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩图文

在线客服(工作时间:9:00-22:00)
400-600-6565

内容导航

zuntop公众号

Copyright   ©2015-2019  尊托云数  Powered by©Discuz!  技术支持:尊托网络     ( 湘ICP备15009499号 )