JoHksi JoHksi - 4 months ago 9
Ruby Question

Retrieving list of files in certain folder in AWS S3(v 2.4.4) and deleting them

I'm making Angular/Rails app and upgraded Rails from 4.2.x to 5.0.0 and AWS-SDK from 1.6.x to 2.4.4.

1) I used to able to retrieve files from certain path in my AWS S3 bucket using the following syntax:

@files = @bucket.objects.with_prefix("path/to/folder")


After upgrading the AWS to the 2.4.4 version it is saying

(undefined method `with_prefix' for #<Aws::Resources::Collection:______>


I read new doc and found
bucket.objects(prefix: '/tmp-files/')
but this did not work for my appand said
ArgumentError (wrong number of arguments (given 1, expected 0))
.

2) Let's say I need to delete a file name
sample.pdf
in a path
sample/pdf/
. I was doing
@bucket.objects['sample/pdf/sample.pdf']
and not working. Is there something wrong with this syntax?

Answer

You have syntax error, options need to be a Hash. Your command should be:

bucket.objects({prefix: '/tmp-files/'})

For more options, refer docs: http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Bucket.html#objects-instance_method

Comments