• 第三方存储--七牛云


    七牛云介绍

    • 项目初期, 数据量小的情况下, 一般会采用第三方的存储方案, 成本比较低, 而且也安全可靠
    • 当数据量达到一定的规模, 第三方存储的费用超过自己搭建文件服务, 才会选择搭建自己文件服务系统
    • 对象存储服务 OSS
    • 使用细节
      • 要求实名认证
      • 创建存储空间
      • 默认生成测试域名 有效期为一个月 要长期使用则需要绑定自己的域名

    交互过程

    API封装

    -安装pip install qiniu

    from qiniu import Auth, put_data
    
    
    def upload_file(file_data):
        """
        七牛云上传
    
        :param file_data 上传的二进制数据
        :return: 文件名
        """
        #需要填写你的 Access Key 和 Secret Key
        access_key = 'kJ8wVO7lmFGsdvtI5M7eQDEJ1eT3Vrygb4SmR00E'
        secret_key = 'rGwHyAvnlLK7rU4htRpNYzpuz0OHJKzX2O1LWTNl'
        #构建鉴权对象
        q = Auth(access_key, secret_key)
    
        # 要上传的空间
        bucket_name = 'info28'
        # 上传后保存的文件名  如果为None 自动生成文件名(hash值)
        key = None
        #生成上传 Token,可以指定过期时间等
        token = q.upload_token(bucket_name, key, 3600)
    
        ret, info = put_data(token, key, file_data)
        # 判断请求结果
        if info.status_code == 200:
            return ret.get('key')
        else:
            raise Exception(info.error)
    
    
    if __name__ == '__main__':
        with open('123.jpg', 'rb') as f:
            img_bytes = f.read()
            file_name = upload_file(img_bytes)
            print(file_name)
    

    • 判断文件类型是否为图片
    import imghdr
    
    if __name__ == '__main__':
    
        with open('123.jpg', 'rb') as f:
            # 判断文件类型的本质是 对比文件的前几个字节
            content = f.read()
            # print(content)
    
            # # 方式1 判断图片类型
            # img_type = imghdr.what(f)
            # if img_type:
            #     print('是图片类型: %s' % img_type)
            # else:
            #     print('不是图片类型')
    
            # 方式2 判断图片类型
            img_type = imghdr.what(None, content)
            if img_type:
                print('是图片类型: %s' % img_type)
            else:
                print('不是图片类型')
    
    

    接口实现‘’

    # 上传头像
    /v1_0/user/photo
    # 请求方式  
    PATCH   form-data
    # 请求参数  
    photo   上传的头像文件
    
    # 响应数据  json
    {
      "photo_url": "www.xx.com/123.jpg"
    }
    

    过期时间调长一些

    • 虚拟机的时间和真实时间存在较大的偏差

  • 相关阅读:
    浅谈P2P
    一串字符的解密
    下载地址解密
    初探DirectX
    本文介绍在VC 6.0中编译和使用OpenSSL的过程
    鱼钩绑线视频
    PKCS cer 证书
    02、创建顶点缓冲
    [原]SSL 开发简述(Delphi)
    [转]Delphi和C++数据类型对照表
  • 原文地址:https://www.cnblogs.com/oklizz/p/11420177.html
Copyright © 2020-2023  润新知