腾讯云 COS 与 CDN 服务

开通 COS 并上传文件

CDN 开通后, 我们既可以使用 CDN 全站加速的功能, 也可以使用 CDN 部署资源文件的功能 在使用 CDN 部署资源文件的功能前,
COS 文件地址与 CDN 加速地址 文件通过腾讯云官网控制台web页面上传后, 通过查看上传文件信息可以得到形如
Bucket名称-id.cos地区缩写.myqcloud.com/文件名 的 URL 地址, 将该地址中的 cos地区缩写 改为 file
即可得到 CDN 的加速地址.

使用该加速地址来访问的资源文件可以得到更快的响应, 达到加速的目的. 如:
文件地址:
http://cloud-1251435248.costj.myqcloud.com/hello.txt
对应的 CDN 地址:
http://cloud-1251435248.file.myqcloud.com/hello.txt
cos地址与对应园区的关系
costj – 华北(天津园区)
cossh – 华东(上海园区)
cosgz – 华南(广州园区)
cossgp – 新加坡园区

使用 COS SDK for Python

1 准备工作

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

1:创建相关目录 mkdir -p /data/upload 准备相关的文件

2:执行下面的命令, 在 /data 目录下创建一个名叫upload_example.txt的文件

3: echo ‘Hello World’ > /data/upload/upload_example.txt 查看appid,
secret_id 和 secret_key 信息

在腾讯云中查看Bucket

如果您 Bucket 的默认域名中包含125开头的 APPID,请使用“API密钥”, 点击前往
如果您 Bucket 的默认域名中包含100开头的项目 ID,请使用“项目密钥”, 点击前往
查看 bucket 属于哪个园区
打开 bucket列表
在列表中点击将要上传的 bucket, 进入详情页
选择 基础配置 tab
查看 基本信息 - 所属地区
华北地区对应 tj, 华南地区对应 gz, 华东地区对应 sh

环境配置

确认 Python 环境为 Python >= 2.7 python -V 如果不符合条件, 可通过 搭建Python开发环境
查看如何搭建环境 安装 pip yum install -y python-pip 使用 pip 安装 COS 的 Python SDK
pip install -U qcloud_cos_v4 如果下载速度过慢, 可尝试更换pip源安装 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

#!/usr/bin/env python
# coding=utf-8

from qcloud_cos import CosClient
from qcloud_cos import UploadFileRequest

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

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

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

print upload_file_response

将你的 appid, secret_id 和 secret_key, bucket 的名称, bucket 所属的地区码填入后执行

cd /data && python /data/cos_python_upload.py

如果调用成功, 会返回类似如下结构的信息:

{
    u'message': u'SUCCESS',
    u'code': 0,
    u'data': {
        u'url': u'http: //sh.file.myqcloud.com/files/v2/1253675457/detect/upload_sample_python.txt',
        u'access_url': u'http: //detect-1253675457.file.myqcloud.com/upload_sample_python.txt',
        u'resource_path': u'/1253675457/detect/upload_sample_python.txt',
        u'vid': u'6fea7b37c3a323fd4fbfbaaff80496ba1496285703',
        u'source_url': u'http: //detect-1253675457.cossh.myqcloud.com/upload_sample_python.txt'
    },
    u'request_id': u'NTkyZjgyMDdfOTJhMDY4XzUwZDZfODBlNTg='
}

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

如果调用失败, 会返回类似如下的信息:

{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

#!/usr/bin/env python
# coding=utf-8

from qcloud_cos import CosClient
from qcloud_cos import MoveFileRequest

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

##################################
# 文件操作                        #
##################################
# 移动文件, 将 upload_sample_python.txt 移动到 sample_file_move_python.txt
request = MoveFileRequest(bucket, u'/upload_sample_python.txt', u'/sample_file_move_python.txt')
stat_file_ret = cos_client.move_file(request)
print stat_file_ret

将你的 appid, secret_id 和 secret_key, bucket 的名称, bucket 所属的地区码填入后执行

cd /data && python /data/cos_python_move.py

如果调用成功, 会返回类似如下结构的信息:

{   
    u'message': u'SUCCESS', 
    u'code': 0, 
    u'request_id': u'NTkyZmJhODVfOTJiODQzX2I1MGJfODA3YmY='
}

在 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

#!/usr/bin/env python
# coding=utf-8

from qcloud_cos import CosClient
from qcloud_cos import CreateFolderRequest

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

##################################
# 目录操作                        #
##################################
# 生成目录, 目录名为sample_folder
request = CreateFolderRequest(bucket, u'/sample_folder/')
create_folder_ret = cos_client.create_folder(request)
print create_folder_ret

将你的 appid, secret_id 和 secret_key, bucket 的名称, bucket 所属的地区码填入后执行

cd /data && python /data/cos_python_create_folder.py

如果调用成功, 会返回类似如下结构的信息:

{
    u'message': u'SUCCESS', 
    u'code': 0, 
    u'data': {
        u'ctime': 1496300704
    }, 
    u'request_id': u'NTkyZmJjYTBfNGFhYTQzXzNiYl84MDhhMg=='
}

在 bucket列表 中选择你刚才填入的 bucket 并查看文件列表, 会发现新增了一个sample_folder目录, 证明目录创建成功

猜你喜欢

转载自blog.csdn.net/sinat_32435311/article/details/74133103