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

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

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

软件环境:CentOS 7.2 64 位


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


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



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 Python
准备工作
上面介绍了使用浏览器上传文件到 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


确认 Python 环境为 Python >= 2.7
  1. python -V
复制代码
如果不符合条件, 可通过 搭建Python开发环境 查看如何搭建环境

安装 pip
  1. yum install -y python-pip
复制代码
使用 pip 安装 COS 的 Python SDK
  1. pip install -U qcloud_cos_v4
复制代码
如果下载速度过慢, 可尝试更换pip源安装
  1. pip install -U qcloud_cos_v4 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
复制代码


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

示例代码:/data/cos_python_upload.py
  1. #!/usr/bin/env python
  2. # coding=utf-8

  3. from qcloud_cos import CosClient
  4. from qcloud_cos import UploadFileRequest

  5. appid = 100000    # 替换为你的appid
  6. secret_id = u''   # 替换为你的secret_id
  7. secret_key = u''  # 替换为你的secret_key
  8. bucket = u''      # 替换为你要操作的bucket名
  9. region = "tj"     # 替换为该bucket所属的地区代码, tj/sh/gz/sgp
  10. cos_client = CosClient(appid, secret_id, secret_key, region)

  11. ##################################
  12. # 文件操作                        #
  13. ##################################
  14. # 上传文件(默认不允许覆盖)
  15. # 将本地的 upload_example.txt 上传到 bucket 的根分区下,并命名为 upload_sample_python.txt

  16. request = UploadFileRequest(bucket, u'/upload_sample_python.txt', u'/data/upload/upload_example.txt')
  17. upload_file_response = cos_client.upload_file(request)

  18. print upload_file_response
复制代码
将你的 appid, secret_id 和 secret_key, bucket 的名称, bucket 所属的地区码填入后执行
  1. cd /data && python /data/cos_python_upload.py
复制代码
如果调用成功, 会返回类似如下结构的信息:
  1. {
  2.     u'message': u'SUCCESS',
  3.     u'code': 0,
  4.     u'data': {
  5.         u'url': u'http: //sh.file.myqcloud.com/files/v2/1253675457/detect/upload_sample_python.txt',
  6.         u'access_url': u'http: //detect-1253675457.file.myqcloud.com/upload_sample_python.txt',
  7.         u'resource_path': u'/1253675457/detect/upload_sample_python.txt',
  8.         u'vid': u'6fea7b37c3a323fd4fbfbaaff80496ba1496285703',
  9.         u'source_url': u'http: //detect-1253675457.cossh.myqcloud.com/upload_sample_python.txt'
  10.     },
  11.     u'request_id': u'NTkyZjgyMDdfOTJhMDY4XzUwZDZfODBlNTg='
  12. }
复制代码
点击这里了解返回的各个字段的含义

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

如果调用失败, 会返回类似如下的信息:
  1. {u'message': 'url:http://sh.file.myqcloud.com/files/v2/125367457/detect/upload_sample_python.txt, status_code:403', u'code': -2}
复制代码
结合 cos错误码说明 和message字段, 您可以知道发生错误的原因

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

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

示例代码:/data/cos_python_move.py
  1. #!/usr/bin/env python
  2. # coding=utf-8

  3. from qcloud_cos import CosClient
  4. from qcloud_cos import MoveFileRequest

  5. appid = 100000    # 替换为你的appid
  6. secret_id = u''   # 替换为你的secret_id
  7. secret_key = u''  # 替换为你的secret_key
  8. bucket = u''      # 替换为你要操作的bucket名
  9. region = "tj"     # 替换为该bucket所属的地区代码, tj/sh/gz/sgp
  10. cos_client = CosClient(appid, secret_id, secret_key, region)

  11. ##################################
  12. # 文件操作                        #
  13. ##################################
  14. # 移动文件, 将 upload_sample_python.txt 移动到 sample_file_move_python.txt
  15. request = MoveFileRequest(bucket, u'/upload_sample_python.txt', u'/sample_file_move_python.txt')
  16. stat_file_ret = cos_client.move_file(request)
  17. print stat_file_ret
复制代码
将你的 appid, secret_id 和 secret_key, bucket 的名称, bucket 所属的地区码填入后执行
  1. cd /data && python /data/cos_python_move.py
复制代码
如果调用成功, 会返回类似如下结构的信息:
  1. {   
  2.     u'message': u'SUCCESS',
  3.     u'code': 0,
  4.     u'request_id': u'NTkyZmJhODVfOTJiODQzX2I1MGJfODA3YmY='
  5. }
复制代码
在 bucket列表 中选择你刚才填入的 bucket 并查看文件列表, 会发现upload_sample_python.txt文件名字变成了 sample_file_move_python.txt 文件, 证明文件移动成功

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

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

示例代码:/data/cos_python_create_folder.py
  1. #!/usr/bin/env python
  2. # coding=utf-8

  3. from qcloud_cos import CosClient
  4. from qcloud_cos import CreateFolderRequest

  5. appid = 100000    # 替换为你的appid
  6. secret_id = u''   # 替换为你的secret_id
  7. secret_key = u''  # 替换为你的secret_key
  8. bucket = u''      # 替换为你要操作的bucket名
  9. region = "tj"     # 替换为该bucket所属的地区代码, tj/sh/gz/sgp
  10. cos_client = CosClient(appid, secret_id, secret_key, region)

  11. ##################################
  12. # 目录操作                        #
  13. ##################################
  14. # 生成目录, 目录名为sample_folder
  15. request = CreateFolderRequest(bucket, u'/sample_folder/')
  16. create_folder_ret = cos_client.create_folder(request)
  17. print create_folder_ret
复制代码
将你的 appid, secret_id 和 secret_key, bucket 的名称, bucket 所属的地区码填入后执行
  1. cd /data && python /data/cos_python_create_folder.py
复制代码
如果调用成功, 会返回类似如下结构的信息:
  1. {
  2.     u'message': u'SUCCESS',
  3.     u'code': 0,
  4.     u'data': {
  5.         u'ctime': 1496300704
  6.     },
  7.     u'request_id': u'NTkyZmJjYTBfNGFhYTQzXzNiYl84MDhhMg=='
  8. }
复制代码
在 bucket列表 中选择你刚才填入的 bucket 并查看文件列表, 会发现新增了一个sample_folder目录, 证明目录创建成功

实验完成
恭喜您已经完成了 CDN 与 COS for Python 的学习
腾讯云
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩图文



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

内容导航

微信客服

Copyright   ©2015-2019  云服务器社区  Powered by©Discuz!  技术支持:尊托网络     ( 湘ICP备15009499号-1 )