Hi Gavriel,

Generally Fog::Foo::Bar#get will issue a GET request to your storage
provider that will verify that the file or directory exists and fetch
metadata about it. If you want to skip that step, you can usually use new(key:
key) instead of get(key).

In your example:

dir = storage.directories.new(key: bucket)
file = dir.files.new(key: key)
file.destroy

would issue a single DELETE request against bucket/key. The request may
raise an exception if the file or bucket does not exist.

Ben

On Mon, Oct 19, 2015 at 3:06 AM, Gavriel Fleischer <[email protected]>
wrote:

> Hi,
>
> I started using fog storage for a project. I do the most simple actions:
> upload an object, get the object, delete the object. My code looks
> something like this:
>
> storage = get_storage(...) // S3 / OpenStack / ...
> dir = storage.directories.get(bucket)
> if !dir.nil?
>   dir.files.create(key: key, body: body)
>
>   # or:
>   dir.files.get(key)
>
>   #or
>   file = dir.files.get(key)
>   if !file.nil?
>     file.destroy
>   end
> end
>
> In all cases there's a 1st step to get the directory, which does a request
> to the storage engine.
> Then there's another step to do whatever I'd like to do (in case of delete
> there's even a 3rd step).
>
> However if I look at let's say the Amazon S3 api, it's clear that deleting
> an object doesn't need 3 requests to amazon.
>
> Is there a way to use fog but make it do less requests to the storage
> provider?
>
> --
> You received this message because you are subscribed to the Google Groups
> "ruby-fog" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Benjamin Manns
[email protected]
(434) 321-8324

-- 
You received this message because you are subscribed to the Google Groups 
"ruby-fog" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to