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.
