gpt4 book ai didi

ruby - AWS Ruby 开发工具包核心 : Upload files to S3

转载 作者:数据小太阳 更新时间:2023-10-29 07:45:05 24 4
gpt4 key购买 nike

我想使用 AWS-SDK-CORE ruby SDK 将文件(任何文件,可以是 .txt、.mp4、.mp3、.zip、.tar ...等)上传到 AWS S3|

这是我的代码:

require 'aws-sdk-core'
Aws.config = {
:access_key_id => MY_ACCESS_KEY
:secret_access_key => MY_SECRET_KEY,
:region => 'us-west-2'
}

s3 = Aws::S3.new
resp = s3.put_object(
:bucket => "mybucket",
:key => "myfolder/upload_me.sql",
:body => "./upload_me.sql"
)

现在,上面的代码运行并创建了一个 key myfolder/upload_me.sql,它只写了一行,即./upload_me.sql,这是错误的。文件 upload_me.sql 有几行。

预期行为是将文件 upload_me.sql 作为 mybucket/myfolder/upload_me.sql 上传到 S3。但它只是向 mybucket/myfolder/upload_me.sql 写入一行,即 ./upload_me.sql

现在,如果我省略 :body 部分,如下所示:

s3 = Aws::S3.new
resp = s3.put_object(
:bucket => "mybucket",
:key => "myfolder/upload_me.sql",
)

然后它只是创建并清空名为 mybucket/myfolder/upload_me.sql 的 key ,它甚至无法下载(好吧,即使下载了也没有用)

你能指出我哪里出错了吗?

这是 put_object 方法的 ruby​​-SDK-core 文档:http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/V20060301.html#put_object-instance_method

更新:如果我尝试使用 AWS-CLI 上传相同的文件,它会正常上传。这是命令:

aws s3api put-object --bucket mybucket --key myfolder/upload_me.sql --body ./upload_me.sql

最佳答案

所以,在 htis 问题上度过了一个令人沮丧的星期天下午之后,我终于破解了它。我真正需要的是 :body => IO.read("./upload_me.sql")

所以我的代码如下所示:

s3 = Aws::S3.new
resp = s3.put_object(
:bucket => "mybucket",
:key => "myfolder/upload_me.sql",
:body => IO.read("./upload_me.sql")
)

关于ruby - AWS Ruby 开发工具包核心 : Upload files to S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23040651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com