CURL multipart - 参数问题

时间:2015-02-16 19:27:57

标签: google-app-engine python-2.7 curl

我应该将mp4文件上传到数据存储区,因此我在我的appengine上添加了以下方法:

def set_video():
    if request.method == 'GET':
        return '''
        <!doctype html>
        <title>Upload video</title>
        <h1>Upload video</h1>
        <form method="POST"
             action=""
             role="form"
             enctype="multipart/form-data">
             <p><input type=file name=Video.mp4>
             <input type=submit value=Upload>
        </form>
        '''
    else:
        file = request.files['Video.mp4']
        if _file:
            cloud_file = cloudstorage.open(BUCKET_NAME + "video." + _file.filename.rsplit('.', 1)[1],
             mode='w', content_type=_file.mimetype)
             _file.save(cloud_file)
             cloud_file.close()
        return "Success"

如果我使用LabVIEW的后多部分对象,一切运行良好,并且我能够存储新视频。但是,使用CURL我遇到了一个问题:我似乎无法设置multipart的参数。 我使用了以下命令:

curl -include --form name=Video.mp4  --form upload=@Video.mp4 -A "National Instruments LabVIEW" http://MY_URL -0

我使用了相同的LabVIEW用户代理。 嗅探与wireshark的沟通,我可以看到:

Encapsulated multipart part:  (application/octet-stream)
    Content-Disposition: form-data; name="upload"; filename="Video.mp4"\r\n
    mime_multipart.header.content-type

所以,&#39;名称&#39;参数是&#34;上传&#34;而不是&#34; Video.mp4&#34;与LabVIEW版本一样:

Encapsulated multipart part:  (application/octet-stream)
    Content-Disposition: form-data; name="Video.mp4"; filename="Video.mp4"\r\n
    Content-Type: video/mpeg\r\n\r\n

有人可以说我做错了吗?

0 个答案:

没有答案