Ability to take snapshots

Is there a method by which I can take snapshots of the current state of a bucket?

It doesn’t look like it exists, so I’d be interested in hearing of possible options. I use DreamObjects for backups, and I was thinking that if some ransomware was wise to my backup program it could encrypt my DreamObjects bucket.

I wouldn’t mind keeping a full duplicate of my backup, but I don’t see any way of creating that second bucket without downloading then re-uploading everything.

Any ideas?

I’m curious about how you do backups to DreamObjects as you should already have ‘snapshots’ of your systems. I use duplicity on Linux which stores daily an archive of all my important files and folders. To save space, duplicity does a full backup weekly and differential backups daily. On a DreamObjects bucket I have multiple archives, each has a copy of my files, each day. Should a ransomware encrypt my backups, I can at worst restore the situation to before the infection happened (which could be many weeks back, depending on how smart the malware is).

I use Arq, which works similar to what you describe. My thought is that all the past archives that live in my bucket would be deliberately overwritten by the ransomware. It may never become an issue, but there is Mac ransomware that had evidence that the authors intended to encrypt TimeMachine backups in addition to the local machine.

So, just to be clear, I do have multiple ‘snapshots’ of my system, but those snapshots all exist in the same bucket, which is completely accessible to my backup program. So theoretically with that sort of access to the bucket (which is necessary for the tool to do its job), all my past backups could be wiped out. I figured the ability to take a snapshot of that bucket (or even a clone) would be useful should something wipe out the backup bucket.

I see your point… So, the best option is for you to use a client that supports the COPY API. Copy allows to copy an object across two different buckets without incurring in data transfer, and it’s pretty fast (no external network bandwidth). A client that does COPY is s3cmd (not sure if Arq supports it, too):

   s3cmd cp s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]  

Check the instructions to setup s3cmd on DreamObjects if you never used it.

Alternatively, and probably even faster, use rclone, the COPY subcommand in particular.

You may want to test both these options with small files first, to make sure that the clients are indeed using the COPY API, not downloading and uploading again (they shouldn’t, you should be charged only for the extra storage space used). I haven’t tested any of these methods. If you want to get your next monthly bill down to $0, consider writing a tutorial on this :slight_smile:

Another option is to use the ‘Migrations’ tab on DreamHost control panel, you should be able to copy one DreamObjects bucket to another DreamObjects bucket but this option will use bandwidth.