xiao-apple36

COS

对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,

用户可通过网络随时存储和查看数据。腾讯云 COS 使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。

 

 

 

 

 

 

创建存储桶

存储桶(Bucket)是对象的载体,可理解为存放对象的“容器”。用户可以通过腾讯云控制台、API、SDK 等多种方式管理存储桶以及配置属性。

 

 

 

查看SDK文档

 

 

 

 

小程序sdk:

 

 

 

 

 

使用示例

小程序端

uploadFile:function(){
    var onlineImageList = [];
    var that = this;

    // 去某个地方获取一个临时密钥
    var cos = new COS({
      getAuthorization: function (options, callback) {
        // 服务端 JS 和 PHP 示例:https://github.com/tencentyun/cos-js-sdk-v5/blob/master/server/
        // 服务端其他语言参考 COS STS SDK :https://github.com/tencentyun/qcloud-cos-sts-sdk
        // STS 详细文档指引看:https://cloud.tencent.com/document/product/436/14048
        wx.request({
          url: \'http://127.0.0.1:8000/api/credential/\',
          data: {
            // 可从 options 取需要的参数
          },
          success: function (result) {
            var data = result.data;
            var credentials = data.credentials;
            callback({
              TmpSecretId: credentials.tmpSecretId,
              TmpSecretKey: credentials.tmpSecretKey,
              XCosSecurityToken: credentials.sessionToken,
              ExpiredTime: data.expiredTime,
            });
          }
        });
      }
    });

    for(var index in this.data.imageList){
      var filePath = this.data.imageList[index];
      cos.postObject({
        Bucket: \'xiaopu-1259051832\',
        Region: \'ap-beijing\',
        Key: index + "uuu.png",
        FilePath: filePath,
        onProgress: function (info) {
          console.log(\'进度条\', JSON.stringify(info));
        }
      }, function (err, data) {
        console.log(data.Location)
        onlineImageList.push(data.Location);
      });
    }
    
  },

 

  服务端示例:https://github.com/tencentyun/qcloud-cos-sts-sdk/edit/master
如python端

 

 

 

 

 https://github.com/tencentyun/qcloud-cos-sts-sdk/tree/master/python

 

python端使用

class CredentialView(APIView):

    def get(self,request,*args,**kwargs):
        from sts.sts import Sts
        from django.conf import settings
        config = {
            # 临时密钥有效时长,单位是秒
            \'duration_seconds\': 1800,
            # 固定密钥 id
            \'secret_id\': os.environ.get("secretId"),
            # 固定密钥 key
            \'secret_key\': os.environ.get("secretKey"),
            # 设置网络代理
            # \'proxy\': {
            #     \'http\': \'xx\',
            #     \'https\': \'xx\'
            # },
            # 换成你的 bucket
            \'bucket\': \'xiaopu-1259051832\',
            # 换成 bucket 所在地区
            \'region\': \'ap-beijing\',
            # 这里改成允许的路径前缀,可以根据自己网站的用户登录态判断允许上传的具体路径
            # 例子: a.jpg 或者 a/* 或者 * (使用通配符*存在重大安全风险, 请谨慎评估使用)
            \'allow_prefix\': \'*\',
            # 密钥的权限列表。简单上传和分片需要以下的权限,其他权限列表请看 https://cloud.tencent.com/document/product/436/31923
            \'allow_actions\': [
                    # 简单上传
                    "name/cos:PutObject",
                    # 表单上传、小程序上传
                    "name/cos:PostObject",
            ],

        }

        sts = Sts(config)
        response = sts.get_credential()
        return Response(response)

 

 

 

文件上传成功

 

分类:

技术点:

相关文章: