python3实现gitlab备份文件上传腾讯云COS

gitlab备份文件上传腾讯云COS

  • 脚本说明
    脚本名称:upload.py
    假设gitlab备份文件目录:/opt/gitlab/backups
    gitlab备份文件格式:1706922037_2024_02_06_14.2.1_gitlab_backup.tar
    
    1.脚本需和gitlab备份文件同级目录
    2.根据备份文件中的日期判断是否上传,如今天的日期存在于备份文件名列表中,则上传今天备份文件,反之不上传。
    3.如需上传此目录下所有文件,则去掉日期判断逻辑即可
      upload_cos(file) # ===> 上传单个文件
      upload_cos(file_list) # ===> 上传目录下所有文件
    
  • 源码如下
    # -*- coding: utf-8 -*-
    # /usr/bin/env python3
    # file_name : upload.py
    # 依赖安装:pip3 install -U cos-python-sdk-v5
    import os
    import sys
    import time
    import datetime
    import logging
    from qcloud_cos import CosConfig
    from qcloud_cos import CosS3Client
    from qcloud_cos.cos_exception import CosClientError, CosServiceError
    
    logging.basicConfig(level=logging.INFO, stream=sys.stdout)
    
    secret_id = 'SecretId'
    secret_key = 'SecretKey'
    region = 'ap-guangzhou'
    token = None
    
    config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token)
    client = CosS3Client(config)
    
    
    def upload_cos(file):
        current = os.getcwd()
        # 线程上传
        for i in range(0, 10):
            try:
                client.upload_file(
                    Bucket='backup-1145114',
                    Key=f'gitlab/{
           file}',
                    LocalFilePath=current + '/' + file,
                )
                break
            except CosClientError or CosServiceError as e:
                print(e)
    
    
    def get_files():
    	# 切换到gitlab备份目录
        os.chdir('/opt/gitlab/backups')
        current_dir = os.getcwd()
        file_list = os.listdir(current_dir)
        # 脚本文件排除上传
        if 'upload.py' in file_list:
            file_list.remove('upload.py')
        # print(file_list)
    
        current_day = datetime.datetime.now().strftime("%Y_%m_%d")
        for file in file_list:
            if current_day in file:
                print('file exist ===>', file)
                # window下用 \\ ,linux下用 /
                print(current_dir + "/" + file)
                upload_cos(file)
    
    
    if __name__ == '__main__':
        start_time = int(time.time() * 1000)
        get_files()
        end_Time = int(time.time() * 1000)
        allCostTime = end_Time - start_time
        print(f"上传耗时:{
           allCostTime}ms")
    
    

相关推荐

  1. python3实现gitlab备份文件COS

    2024-02-07 19:44:01       30 阅读
  2. vue、thinkphp实现对象存储COS图片

    2024-02-07 19:44:01       26 阅读
  3. 基于element-plus +COS实现图片

    2024-02-07 19:44:01       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 19:44:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 19:44:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 19:44:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 19:44:01       18 阅读

热门阅读

  1. 【Office】或得单元格中以/分隔的后半部分

    2024-02-07 19:44:01       26 阅读
  2. 多头注意力和多尺度注意力的区别

    2024-02-07 19:44:01       33 阅读
  3. Python 套接字详解:与网络通信的温柔邂逅

    2024-02-07 19:44:01       31 阅读
  4. WPF绘制矢量图形并绑定到界面的方法

    2024-02-07 19:44:01       32 阅读
  5. jpeg压缩基本步骤

    2024-02-07 19:44:01       33 阅读
  6. 【工厂模式】

    2024-02-07 19:44:01       25 阅读
  7. C# 旋描仪或扫描仪

    2024-02-07 19:44:01       28 阅读
  8. C Primer Plus(第六版)15.9 编程练习 第7题

    2024-02-07 19:44:01       28 阅读
  9. Python_百度贴吧评论情感分析

    2024-02-07 19:44:01       35 阅读