Class: CarrierWave::Storage::CloudFiles::File
- Inherits:
-
Object
- Object
- CarrierWave::Storage::CloudFiles::File
- Defined in:
- lib/carrierwave/storage/cloud_files.rb
Instance Method Summary collapse
- #content_type ⇒ Object
- #content_type=(new_content_type) ⇒ Object
-
#delete ⇒ Object
Remove the file from Cloud Files.
-
#initialize(uploader, base, path) ⇒ File
constructor
A new instance of File.
-
#path ⇒ Object
Returns the current path/filename of the file on Cloud Files.
-
#read ⇒ Object
Reads the contents of the file from Cloud Files.
-
#store(data, headers = {}) ⇒ Object
Writes the supplied data into the object on Cloud Files.
-
#url ⇒ Object
Returns the url on the Cloud Files CDN.
Constructor Details
#initialize(uploader, base, path) ⇒ File
Returns a new instance of File.
33 34 35 36 37 |
# File 'lib/carrierwave/storage/cloud_files.rb', line 33 def initialize(uploader, base, path) @uploader = uploader @path = path @base = base end |
Instance Method Details
#content_type ⇒ Object
95 96 97 |
# File 'lib/carrierwave/storage/cloud_files.rb', line 95 def content_type cf_container.object(@path).content_type end |
#content_type=(new_content_type) ⇒ Object
99 100 101 |
# File 'lib/carrierwave/storage/cloud_files.rb', line 99 def content_type=(new_content_type) headers["content-type"] = new_content_type end |
#delete ⇒ Object
Remove the file from Cloud Files
66 67 68 69 70 71 72 73 |
# File 'lib/carrierwave/storage/cloud_files.rb', line 66 def delete begin cf_container.delete_object(@path) rescue ::CloudFiles::Exception::NoSuchObject # If the file's not there, don't panic nil end end |
#path ⇒ Object
Returns the current path/filename of the file on Cloud Files.
Returns
- String
-
A path
46 47 48 |
# File 'lib/carrierwave/storage/cloud_files.rb', line 46 def path @path end |
#read ⇒ Object
Reads the contents of the file from Cloud Files
Returns
- String
-
contents of the file
57 58 59 60 61 |
# File 'lib/carrierwave/storage/cloud_files.rb', line 57 def read object = cf_container.object(@path) @content_type = object.content_type object.data end |
#store(data, headers = {}) ⇒ Object
Writes the supplied data into the object on Cloud Files.
Returns
boolean
110 111 112 113 |
# File 'lib/carrierwave/storage/cloud_files.rb', line 110 def store(data,headers={}) object = cf_container.create_object(@path) object.write(data,headers) end |
#url ⇒ Object
Returns the url on the Cloud Files CDN. Note that the parent container must be marked as public for this to work.
Returns
- String
-
file’s url
83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/carrierwave/storage/cloud_files.rb', line 83 def url if @uploader.cloud_files_cdn_host "http://" + @uploader.cloud_files_cdn_host + "/" + @path else begin cf_container.object(@path).public_url rescue ::CloudFiles::Exception::NoSuchObject nil end end end |