python 七牛云 文件上传

系统 1998 0
原文链接: http://blog.fenlanli.com/articles/2019/09/08/1567943775791.html

python 七牛云 文件上传_第1张图片

前期准备

注册七牛云账号,官网地址点这里。

注册之后需要完成实名认证。

点击左侧边栏对象存储,创建存储空间,存储空间名称即bucket_name, 上传文件会使用到。

python 七牛云 文件上传_第2张图片

创建完成后查看空间域名,右侧S3域名标题下的空间域名即上传和访问使用到的domain。

python 七牛云 文件上传_第3张图片

找到个人中心->秘钥管理, 记录上传需要使用到的access_key和secret_key。

python 七牛云 文件上传_第4张图片

安装模块

官方提供了模块,使用pip安装即可。 pip install qiniu

代码演示

            
              from qiniu import Auth, put_data


class SevenCattle:
    """
    单例模式七牛云文件上传
    """
    __instance = None

    def __new__(cls, **kwargs):
        if not cls.__instance:
            cls.__instance = super().__new__(cls)
        return cls.__instance

    def __init__(self, **kwargs):
        """
        :param access_key:
        :param secret_key:
        :param domain:
        :param bucket_name:
        """
        need_key = ('access_key', 'secret_key', 'domain', 'bucket_name')
        for key in need_key:
            val = kwargs.get(key, None)
            if not val:
                raise ValueError('{} is necessary.'.format(key))
            setattr(self, key, val)

        self._q = Auth(self.access_key, self.secret_key)

    def upload(self, source_file_path, save_file_name):
        """
        :param source_file_path: 源文件路径
        :param save_file_name: 保存至七牛云的文件名
        :return:
        """
        token = self._q.upload_token(self.bucket_name, save_file_name)
        ret, info = put_data(token, source_file_path, save_file_name)
        if info.status_code == 200:
            return '/' . join([self.domain, save_file_name])
        return None


if __name__ == '__main__':
    config = {
        'access_key': 'xx',  # 填你的access_key
        'secret_key': 'xx',  # 填你的secret_key
        'bucket_name': 'xx',  # 填你的存储空间名称
        'domain': 'xxx.com'  # 填你的空间域名
    }
    seven_cattle = SevenCattle(**config)
    url = seven_cattle.upload('main.py', 'main.py')
    print(url)

            
          

个人博客地址http://blog.fenlanli.com


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论