Class: Shrine::Storage::Fog
- Inherits:
-
Object
- Object
- Shrine::Storage::Fog
- Defined in:
- lib/shrine/storage/fog.rb
Instance Attribute Summary collapse
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#directory ⇒ Object
readonly
Returns the value of attribute directory.
-
#prefix ⇒ Object
readonly
Returns the value of attribute prefix.
Instance Method Summary collapse
- #clear!(confirm = nil) ⇒ Object
- #delete(id) ⇒ Object
- #download(id) ⇒ Object
- #exists?(id) ⇒ Boolean
-
#initialize(directory:, prefix: nil, public: true, expires: 3600, connection: nil, **options) ⇒ Fog
constructor
A new instance of Fog.
- #open(id) ⇒ Object
- #read(id) ⇒ Object
- #upload(io, id, metadata = {}) ⇒ Object
- #url(id, **options) ⇒ Object
Constructor Details
#initialize(directory:, prefix: nil, public: true, expires: 3600, connection: nil, **options) ⇒ Fog
Returns a new instance of Fog.
9 10 11 12 13 14 15 |
# File 'lib/shrine/storage/fog.rb', line 9 def initialize(directory:, prefix: nil, public: true, expires: 3600, connection: nil, **) @connection = connection || ::Fog::Storage.new() @directory = @connection.directories.new(key: directory) @prefix = prefix @public = public @expires = expires end |
Instance Attribute Details
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
7 8 9 |
# File 'lib/shrine/storage/fog.rb', line 7 def connection @connection end |
#directory ⇒ Object (readonly)
Returns the value of attribute directory.
7 8 9 |
# File 'lib/shrine/storage/fog.rb', line 7 def directory @directory end |
#prefix ⇒ Object (readonly)
Returns the value of attribute prefix.
7 8 9 |
# File 'lib/shrine/storage/fog.rb', line 7 def prefix @prefix end |
Instance Method Details
#clear!(confirm = nil) ⇒ Object
56 57 58 59 |
# File 'lib/shrine/storage/fog.rb', line 56 def clear!(confirm = nil) raise Shrine::Confirm unless confirm == :confirm list.each(&:destroy) end |
#delete(id) ⇒ Object
41 42 43 |
# File 'lib/shrine/storage/fog.rb', line 41 def delete(id) file(id).destroy end |
#download(id) ⇒ Object
25 26 27 |
# File 'lib/shrine/storage/fog.rb', line 25 def download(id) Down.download(url(id)) end |
#exists?(id) ⇒ Boolean
37 38 39 |
# File 'lib/shrine/storage/fog.rb', line 37 def exists?(id) !!head(id) end |
#open(id) ⇒ Object
29 30 31 |
# File 'lib/shrine/storage/fog.rb', line 29 def open(id) download(id) end |
#read(id) ⇒ Object
33 34 35 |
# File 'lib/shrine/storage/fog.rb', line 33 def read(id) get(id).body end |
#upload(io, id, metadata = {}) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/shrine/storage/fog.rb', line 17 def upload(io, id, = {}) if copyable?(io) copy(io, id, ) else put(io, id, ) end end |
#url(id, **options) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/shrine/storage/fog.rb', line 45 def url(id, **) signed_url = file(id).url(Time.now + @expires, **) if @public uri = URI(signed_url) uri.query = nil uri.to_s else signed_url end end |