我正在尝试将给定的数据流保存到与 S3 兼容的存储中。在流结束之前大小是未知的,可以从 5MB 到 ~500GB 不等。
我尝试了不同的可能性,但没有找到比自己实现分片更好的解决方案。我最好的猜测是用我的流填充一个固定大小的缓冲区并将其写入 S3。有更好的解决方案吗?也许这是一种对我来说透明的方式,而不会将整个流写入内存?
aws-sdk-go 自述文件有一个示例程序,它从标准输入获取数据并将其写入 S3:https ://github.com/aws/aws-sdk-go#using-the-go-sdk
当我尝试使用管道传输数据时,出现|
以下错误:
failed to upload object, SerializationError: failed to compute request body size
caused by: seek /dev/stdin: illegal seek
我做错了什么还是示例没有按我预期的那样工作?
我虽然尝试了 minio-go,使用PutObject()或client.PutObjectStreaming()。这是功能性的,但消耗的内存与要存储的数据一样多。
- 有更好的解决方案吗?
- 是否有一个可以将任意数据传输到 S3 的小示例程序?