1

我想做类似以下的事情,但它不起作用:

wget http://www.blob.com/file | s3cmd 把 s3://mybucket/file

这可能吗?

4

2 回答 2

2

不能说话,s3cmd但绝对有可能。

您可以使用https://github.com/minio/mc。Minio Client akamc是用 Golang 编写的,在 Apache License Version 2 下发布。

它实现mc pipe了让用户从管道/os.stdin 上的传入数据直接将数据流式传输到 Amazon S3 的命令。 mc pipe也可以并行管道到多个目的地。在内部 mc 管道流输出并并行进行多部分上传。

$ mc pipe
NAME:
   mc pipe - Write contents of stdin to files. Pipe is the opposite of cat command.

$ mc cat
NAME:
   mc cat - Display contents of a file.

例子

#!/bin/bash

mc cat https://s3.amazonaws.com/mybucket/1.txt | mc pipe https://s3-us-west-2.amazonaws.com/mywestbucket/1.txt
于 2015-11-09T07:02:12.560 回答
0

要回答有关的问题s3cmd:不,它不能(当前)STDIN.

确实支持多部分上传,也支持流式传输 STDIN,但显然不是相反。

从这样的作品管道输出s3cmd

s3cmd get s3://my-bucket/some_key - | gpg -d | tar -g /dev/null -C / -xvj

gzip请注意,流文件可能存在问题: https ://github.com/s3tools/s3cmd/issues/811

于 2018-12-04T13:51:51.510 回答