Class: S3BackupManager::FileBackup
- Inherits:
-
Object
- Object
- S3BackupManager::FileBackup
- Defined in:
- lib/models/file_backup.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#bucket ⇒ Object
Returns the value of attribute bucket.
Instance Method Summary collapse
- #backup(file, directory = "filesystem") ⇒ Object
- #files ⇒ Object
-
#initialize(opts = {}) ⇒ FileBackup
constructor
A new instance of FileBackup.
- #restore(file, timestamp, destination, directory = "filesystem") ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ FileBackup
Returns a new instance of FileBackup.
9 10 11 12 |
# File 'lib/models/file_backup.rb', line 9 def initialize(opts = {}) @bucket = Bucket.find(opts[:bucket]) super() end |
Instance Attribute Details
#bucket ⇒ Object
Returns the value of attribute bucket.
7 8 9 |
# File 'lib/models/file_backup.rb', line 7 def bucket @bucket end |
Instance Method Details
#backup(file, directory = "filesystem") ⇒ Object
18 19 20 21 22 23 |
# File 'lib/models/file_backup.rb', line 18 def backup(file, directory = "filesystem") stored_file_name = "#{Time.now.strftime("%Y%m%d%H%M%S")}/#{File.basename(file)}" encrypted_file = encrypt(pack(file)) bucket.store("#{directory}/#{stored_file_name}", open(encrypted_file)) cleanup! end |
#files ⇒ Object
14 15 16 |
# File 'lib/models/file_backup.rb', line 14 def files bucket.files.select{|f| f.key.match(%r{^filesystem/})} end |
#restore(file, timestamp, destination, directory = "filesystem") ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/models/file_backup.rb', line 25 def restore(file, , destination, directory = "filesystem") if file.match() data = bucket.retrieve("#{directory}/#{file}") else data = bucket.retrieve("#{directory}/#{}/#{file}") end decrypted_file = decrypt(file, , data) unpack(decrypted_file, destination) cleanup! end |