騰訊雲cos對象存儲使用


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)

 

 

 

文件上傳成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM