How Do I Rename Files/Object Storage
Hello. I seem to have inadvertently uploaded a lot of files to one of my buckets in Object storage that have their file names in All Caps. I need to somehow change all of these to lowercase file names. What is the best way to do this? I would prefer to just mass-change all of the files, rather than manually change them all. Is there a program that can accomplish this?
2 Replies
✓ Best Answer
From experience it can be tough to correct a naming scheme issue within Object Storage once you've already started uploading files. This is because you need to re-write the file(s) in question with a new name since objects in Object Storage cannot be modified at the block level.
With that said I think you are on the right track here and could run a script of some sort.
After a little bit of fussing around this definitely looks like something you should be able to do with a for
loop of some sort. I came up with a simple version (see below) to get started. It's not pretty, but I was able to use s3cmd to copy the files in a given bucket and force the new file name to be all lowercase.
for i in $(s3cmd ls s3://BUCKETNAME | awk '{print $4}'); do s3cmd cp $i `echo $i | tr 'A-Z' 'a-z'`; done
I highly recommend testing this out on a sample bucket with a smaller batch of test files to ensure that this meets your use-case and does not cause any issues on your back-end. This is especially true if you will be changing a large number of files in the bucket.
Lastly, the loop I provided will leave some additional work on your end in its current form. The original files with the mixed-case naming will still exist, so you will need to manually remove them at your convenience (maybe using an s3 compatible tool with a GUI like Cyberduck so you can more easily remove extraneous objects) or cook up additional commands to do this for you.
I hope this helps get you headed in the right direction!
Wow, Josh! Thank you so much!
I just wanted to take a moment to extend my appreciation for such an extensive and helpful response. I did solve my issue! Unfortunately, the above solution did not end up being the best method for me (I had some additional problems with the stuff I uploaded so, for me, ultimately it just made sense to start from scratch. Sucks to be me. ha!).
Nevertheless, I was very impressed with your suggestions and I continue to be truly happy with Linode and certainly the customer service offered. I really scoured the web for an answer to this problem before posting here. Nothin'. Nowhere. I seriously thought that this would be a more common problem.
So, I'm certain that some other poor sap like me will be overjoyed to find this solution in the future! Thank you again for the quick response!