0
curl -X PUT -H 'Content-Type: video/mp4' \
         -H "Content-Length: 8036821" \
         -T "/Users/kenh/Downloads/amazing_race.mp4" \
         "https://hootsuite-video.s3.amazonaws.com/production/3563111_6923ef29-d2bd- 4b2a-a6d2-11295411c988.mp4?AWSAccessKeyId=AKIAIHSDDN2I7V2FDJGA&Expires=1465846288&Signature=3xLFijSn02YIx6AOOjmri5Djkko%3D"

主要是我不明白如何使用 -T 行。我知道的标题和 URL。

4

2 回答 2

1

您的命令尝试做的是将文件上传到 HTTP 服务器。-T实际上参数的简短版本也是如此--upload-file,它后面的文件名是您要上传的文件名。

requests几乎是 Python 中的等效包。如果您想将 CURL 语法转换为 Python,请查看站点。

于 2021-08-06T13:38:45.013 回答
1

-T记录如下:

-T, --upload-file <file>
    This  transfers  the  specified  local  file  to the remote URL. [...] If this is used on an HTTP(S) server, the PUT command will be used.

考虑到这一点,requests基于Streaming Uploads doc的调用应该大约是

import requests

with open("/Users/kenh/Downloads/amazing_race.mp4", "rb") as data:
    resp = requests.put(
        url="https://....",
        data=data,
        headers={
            "Content-type": "video/mp4",
        },
    )
    resp.raise_for_status()

content-length如果可以,请求将为您分配标头。

于 2021-08-06T13:06:04.743 回答