• python表单流式上传gzip格式文件代码


    通过form-data进行gzip格式文件上传

    # coding=utf8
    import requests
    from uuid import uuid4
    import os
    from requests_toolbelt.multipart.encoder import MultipartEncoder
    import sys
    
    
    
    conn = requests.Session()
    login_data = {
        'username': username,
        'passwd': password
    }
    headers = {'Content-Type': 'application/json'}
    
    login_url = 'http://{}:{}/omp/api/v1/user/login'.format(server_ip, port)
    response = conn.post(
        url=login_url,
        json=login_data,
        headers=headers
    )
    if response.status_code != 200:
        print(
            'Login failed reason:{}'.format(response.content.decode()))
        sys.exit(1)
    
    file_name = 'UYUN-platform-smc-R16.tar.gz'
    url='http://{}:{}/omp/api/v1/pkgs/upload'.format(server_ip, port)
    import urllib
    encoded_name = urllib.quote(file_name)
    boundary = 'WebKitFormBoundary'+uuid4().hex[0:16]
    
    header = {'Content-Type': 'multipart/form-data; boundary={0}'.format(boundary), 'charset': 'UTF-8',
              'Accept-Encoding': 'gzip,deflate'}
    import gzip
    with open("C:\Users\Administrator\Desktop\"+file_name, 'rb') as f:
        m = MultipartEncoder(
            fields={'file': (encoded_name, f,
                             'application/gzip')}
        )
        decoded_m = m.to_string()
    
    
        content = f.readlines()
        print content
        content = ''.join(content)
    
        datas = '--{0}{1}Content-Disposition: form-data; name="file"; filename="{2}"{1}Content-Type: application/gzip{1}{1}{3}{1}--{0}--{1}'. 
            format(boundary, '
    ', file_name, content, boundary)
        print datas
        print header
        response = conn.post(url,
                             data=decoded_m,
                             headers={'Content-Type': m.content_type,
                                      'charset': 'UTF-8'},
                                 verify=False)
        print response.status_code, response.text
    
    
    url='http://{}:{}/omp/api/v1/pkgs/analysis?fileName={}'.format(server_ip, port,file_name)
    headers = {'Content-Type': 'application/json'}
    response = conn.get(url,
                         headers=headers,
                         verify=False)
    print response.status_code, response.text
    

      

  • 相关阅读:
    JavaScript Hoisting
    关于性能工具
    JavaScript 新旧替换五:函数嵌套
    JavaScript 新旧替换四:继承
    JavaScript 新旧替换三:参数转换
    JavaScript 新旧替换二:赋值和取值
    test
    这么多数组方法,你掌握了么?
    问问自己,你真的会用防抖和节流么????
    防抖、节流、闭包的真谛所在
  • 原文地址:https://www.cnblogs.com/slqt/p/11124926.html
Copyright © 2020-2023  润新知