存根 AWS S3 对象请求
Stubbing AWS S3 object request
我正在尝试停止获取 AWS 存储桶中对象的请求。我已经阅读了他们关于存根请求的文档,并且只能存根一个桶,而不是一个对象。以下是我尝试过的方法:
通过 AWS 配置存根:
Aws.config[:s3] = {
stub_responses: {
list_buckets: {
buckets: [name: "my-bucket"],
list_objects: [key: "file.pdf"]
}
}
}
虽然得到了桶,但没有给我对象。调用 s3.buckets
将列出存储桶,但 s3.objects
将是空的。
存根 webmock
gem:
tempfile = file_fixture('file.pdf').read
base_uri = Regexp.new "https://my-bucket.s3.us-west-1.amazonaws.
stub_request(:get, base_uri).to_return(status: 200, body: tempfile)
这似乎仍然不起作用。调用 bucket.objects
仍然是 returns 一个空集合。
我要测试的控制器中的代码:
s3 = Aws::S3::Resource.new
bucket = s3.bucket("my-bucket")
@files = {}
bucket.objects.each do |item|
@files[File.basename(item.key)] = item.presigned_url(:get)
end
我的目标是确保我的视图向我的 @file
变量中的对象显示 link,并且我想测试 link。任何帮助将不胜感激!我刚开始使用 AWS S3 进行开发,而 googlge 并没有太大帮助。我正在使用 aws-sdk-s3
gem 来处理 AWS S3。
想通了。我还需要删除 #list_objects
方法以获取对象。最终的存根看起来像这样:
Aws.config[:s3] = {
stub_responses: {
list_buckets: {
buckets: [name: "my-bucket"]
},
list_objects: {
contents: [{key: "mykey"}]
},
get_object: {
body: file_fixture('file').read
}
}
}
现在如果我这样做 s3.buckets.first.objects.first
我会取回存根对象。
我正在尝试停止获取 AWS 存储桶中对象的请求。我已经阅读了他们关于存根请求的文档,并且只能存根一个桶,而不是一个对象。以下是我尝试过的方法:
通过 AWS 配置存根:
Aws.config[:s3] = {
stub_responses: {
list_buckets: {
buckets: [name: "my-bucket"],
list_objects: [key: "file.pdf"]
}
}
}
虽然得到了桶,但没有给我对象。调用 s3.buckets
将列出存储桶,但 s3.objects
将是空的。
存根 webmock
gem:
tempfile = file_fixture('file.pdf').read
base_uri = Regexp.new "https://my-bucket.s3.us-west-1.amazonaws.
stub_request(:get, base_uri).to_return(status: 200, body: tempfile)
这似乎仍然不起作用。调用 bucket.objects
仍然是 returns 一个空集合。
我要测试的控制器中的代码:
s3 = Aws::S3::Resource.new
bucket = s3.bucket("my-bucket")
@files = {}
bucket.objects.each do |item|
@files[File.basename(item.key)] = item.presigned_url(:get)
end
我的目标是确保我的视图向我的 @file
变量中的对象显示 link,并且我想测试 link。任何帮助将不胜感激!我刚开始使用 AWS S3 进行开发,而 googlge 并没有太大帮助。我正在使用 aws-sdk-s3
gem 来处理 AWS S3。
想通了。我还需要删除 #list_objects
方法以获取对象。最终的存根看起来像这样:
Aws.config[:s3] = {
stub_responses: {
list_buckets: {
buckets: [name: "my-bucket"]
},
list_objects: {
contents: [{key: "mykey"}]
},
get_object: {
body: file_fixture('file').read
}
}
}
现在如果我这样做 s3.buckets.first.objects.first
我会取回存根对象。