From df04e69cde6d2511bbf17a203e6b92e4996f9fc3 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Mon, 10 Sep 2018 16:34:40 +0800 Subject: [PATCH] FIX: `S3Helper#list` creates incorrect prefix. --- lib/s3_helper.rb | 6 +++++- spec/components/s3_helper_spec.rb | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/s3_helper.rb b/lib/s3_helper.rb index cf814912922..79b0302375d 100644 --- a/lib/s3_helper.rb +++ b/lib/s3_helper.rb @@ -136,7 +136,11 @@ class S3Helper end def list(prefix = "") - s3_bucket.objects(prefix: "#{@s3_bucket_folder_path}/#{prefix}") + if @s3_bucket_folder_path.present? + prefix = File.join(@s3_bucket_folder_path, prefix) + end + + s3_bucket.objects(prefix: prefix) end def tag_file(key, tags) diff --git a/spec/components/s3_helper_spec.rb b/spec/components/s3_helper_spec.rb index 412f0805e25..9ef8dd9304c 100644 --- a/spec/components/s3_helper_spec.rb +++ b/spec/components/s3_helper_spec.rb @@ -53,4 +53,18 @@ describe "S3Helper" do helper.update_tombstone_lifecycle(100) end + describe '#list' do + it 'creates the prefix correctly' do + { + 'some/bucket' => 'bucket/testing', + 'some' => 'testing' + }.each do |bucket_name, prefix| + s3_helper = S3Helper.new(bucket_name) + bucket = stub('s3_bucket') + s3_helper.expects(:s3_bucket).returns(bucket) + bucket.expects(:objects).with(prefix: prefix) + s3_helper.list('testing') + end + end + end end