class Fog::Storage::Dropbox::File
Public Instance Methods
body()
click to toggle source
# File lib/fog/dropbox/models/storage/file.rb, line 16 def body attributes[:body] ||= if last_modified && (file = collection.get(identity)) service.client.get_file(key) else '' end end
body=(new_body)
click to toggle source
# File lib/fog/dropbox/models/storage/file.rb, line 24 def body=(new_body) attributes[:body] = new_body end
destroy()
click to toggle source
# File lib/fog/dropbox/models/storage/file.rb, line 32 def destroy requires :key begin service.client.file_delete(key) rescue DropboxError end true end
directory()
click to toggle source
# File lib/fog/dropbox/models/storage/file.rb, line 28 def directory @directory end
save(options = {})
click to toggle source
# File lib/fog/dropbox/models/storage/file.rb, line 41 def save(options = {}) requires :body, :directory, :key if body.is_a? String service.client.put_file(key, body, true) # true means overwrite else local_file_size = Fog::Storage.get_body_size(body) uploader = service.client.get_chunked_uploader(body, local_file_size) retries = 0 chunk_size = 4 * (1024**2) # 4 MB while uploader.offset < uploader.total_size begin uploader.upload(chunk_size) rescue DropboxError => e if retries > 10 break end retries += 1 end end uploader.finish(key, true) # true means overwrite end end
url()
click to toggle source
# File lib/fog/dropbox/models/storage/file.rb, line 64 def url() requires :key share = service.client.shares(key) url = share['url'] r = Net::HTTP.get_response(URI.parse(url)) if r.code == "302" url = r.header['location'] end url.gsub "dl=0", "dl=1" end