0

私のプロジェクトでは Paperclip と Amazon S3 を使用していますが、S3 に直接接続しない開発/テスト環境が必要です。私は FakeS3 を使用しようとしましたが、aws-sdkバージョン 2 を使用しているため、うまくいきませんでした (他のすべての Web サイトでは、v1 の使用方法が示されています)。

それを行う方法はありますか?どのように?

私のGemfile

gem 'aws-sdk', '~> 2.5', '>= 2.5.3'
gem 'paperclip', '~> 5.1'

group :development, :test do
  gem 'fakes3', '~> 0.2.4'
end
4

1 に答える 1

0

aws-ruby-sdk v2 は、AWS sdk を使用するコードをテストできるものを提供します。

stub_data および stub_responses

多くのオプションがあり、そのうちの 1 つが次のとおりです。

# stub data in the constructor
client = Aws::S3::Client.new(stub_responses: {
  list_buckets: { buckets: [{name: 'my-bucket' }] },
  get_object: { body: 'data' },
})

client.list_buckets.buckets.map(&:name) #=> ['my-bucket']
client.get_object(bucket:'name', key:'key').body.read #=> 'data'

このようにして、実際のサービスを使用する必要なく、SDK によって返されるものを制御します。

http://docs.aws.amazon.com/sdkforruby/api/Aws/ClientStubs.html

于 2016-12-15T20:06:34.723 に答える