繁体   English   中英

使用 curl 将数据上传到 s3

[英]Upload data to s3 with curl

我正在使用HELO 设备录制视频数据。 使用 curl 命令,我可以将数据上传到本地计算机:

curl -v0 --output example-filename-downloaded.mov http://192.168.0.2/media0/example-filename-source.mov

其中 192.168.0.2 被设备连接的 IP 地址替换。 现在,我不想将这些数据下载到我自己的电脑,而是要下载到云环境 (AWS S3)。 通常,当我将数据上传到 s3 时,我使用aws s3 cp filename s3://bucketname/directory命令。 但是,我想设置一些东西,以便文件不必存储在 PC 上,而是立即上传到 s3。 就好像 curl 命令将在其中包含 s3 目标一样。

关于如何做到这一点的任何想法?

有两种方法可以将数据上传到 Amazon S3:

您显然可以使用 cURL 上传带有文件的 POST 数据 - 堆栈内存溢出 我还没有用 S3 试过,但它可能会工作!

您需要在标头中包含身份验证信息,因为您不想向任何能够上传到 S3 存储桶的打开您的存储桶(否则机器人将随机上传电影和音乐,从而使您花钱)。 这将使curl命令更加复杂,因为您需要提供所需的信息才能使 S3 满意。

更好的方法

坦率地说,我建议您使用AWS 命令​​行界面 (CLI),因为它会简单得多。 当然,这需要能够在系统上安装 AWS CLI。 如果您的 HELO 设备不是这种情况,那么您需要使用上述方法(祝您好运!)。

如果您担心“文件不必存储在电脑上”,那么请注意,您的curl方法仍会涉及将文件下载到您的计算机,然后上传到 S3。 是的,文件不会保存到磁盘,但它仍然需要通过您的计算机。

如果您可以安装 AWS CLI,那么使用 AWS CLI 的等效方法是:

curl http://example.com/some.file.on.the.internet.txt | aws s3 cp - s3://my-bucket/filename.txt

这将从给定的 URL检索文件,然后通过标准输入(使用-作为源)将其传递到 Amazon S3 存储桶。 该文件将“通过”您的计算机,但不会保存到磁盘。 这等效于您想要执行的curl方法,但使复制到 S3 变得更加容易。

如果您想从 Internet 上的某个地方检索文件,然后将其上传到 S3,这会很有用。 如果您的 HELO 设备可以“拉”一个文件,这可以在您自己的 PC 上完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM