Application Name | S3 Warp Transporter |
Version | None Yet |
Short Description | A way to easily transport files/text using S3 as an intermediary |
Supported OSes | Windows |
Web Page | Yes, it will have one |
Download Link | https://keybase.pub/...3WarpTransporter.zip |
System Requirements | - Modern Windows
- x86_64 architecture CPU
- AWS S3 Bucket
- .NET 5.0
|
Version History | - 2022-01-02
- Initial Release
|
Author | wraith808 |
DescriptionI started using Wormhole William, but there's a problem of the bandwidth for the nodes in the transfer. There are several transfer options for using S3 as a backing store, but all of them are pretty heavyweight. So I decided to roll my own- mostly because I'm doing AWS certification course right now, and it's a good way to keep the memories of the earlier lessons while I move on to the rest of the course.
InstallationInstalling S3 Warp Transporter is simple- just unzip the archive where you want it installed. You will also have to set up your own S3 Bucket on AWS and Create an IAM with AccessKey/SecretKey. This was intended to solve a problem that I had in using Clipboard Fusion and other clipboard sharers, so it's not exactly non-tech-savvy user friendly.
The first thing I'll cover is the recommended settings for the S3 bucket - I'd recommend that it not be public. You can find simple rules for setting up one at
https://docs.aws.ama...creating-bucket.html. The bucket does not need to be public for the application to use it. If you're using it as I am, I'd suggest
not making it public.
I also set up lifecycle rules on my bucket, so I don't have to worry about cleaning it up - it's just meant for ephemeral storage as I move things from one computer to another. My settings for my bucket are below:
Step 1: Create the lifecycle rule and apply it to all objects in the bucket
Step 2: Adjust the rule action to expire current versions of objects after 7 days
Step 3: Review the rule - it should look like the below image
Next, we need to create the IAM user. You can find steps on creating one at
https://binaryguy.te...m-user-to-access-s3/Two notes on creation.
Note 1. Make sure to make the user use an access key for programmatic access
Note 2: The easiest policy to use is the canned one for AmazonS3FullAccess
You can get more granular and give the user access to only that particular bucket, and only listobjects, putobject, putobjectacl, getobject, getobjectacl, and headobject, permissions, but that's a more advanced operation. I might detail that a bit later in the more formal user guide.
Download the credentials, and note the region you created the bucket in, and the bucket name- you'll need those in the next step.
After getting everything set up, you're ready to run S3WarpTransporter.
First RunWhen you first run the application, it will put a taskbar notification icon of a little rocket (thanks to
Paul Davey aka Mattahan).
Right click on that icon, and a menu will show up:
Choose settings - this is where you will enter your bucket info and the directory you want objects downloaded into (it will be a bit less blurry, of course)
NANY 2022 Pledge: S3 Warp TransporterUsageAfter entering your settings, you'll be in business. To go back to the menu image and explain:
- Upload File - Opens a file dialog for you to select what file to upload. After it is uploaded, you will be given the key for the item, and it will be copied to the clipboard
- Upload from Clipboard - If you have a filepath on the clipboard, that will be uploaded. If it is not a filepath, it will be uploaded as text.
- Download Key from Clipboard - if you copy the key of a previously uploaded file to the clipboard, it will download that object
- Settings - We went through that on first run, though if you need to change them, this is the place
- Exit - Close the icon
Future enhancementsBetter documentation, about box, and web page- being sick for much of December, I got a late start on this, so don't have that set up.
Better handling of file extensions on download - when I upload an object, I get the mime type from the extension. However, extensions to mime types are a different story, as they map to a large list- for example, text/plan has 8 different extensions in the apache mime type table. When querying those, they come back in alphabetical order- and the first one is 'conf'. I need to make my own implementation of this, and restrict it to common file types so I have a better chance of getting them right. Or even better, I'll store the original file name in the metadata for the object.
More settings - run at startup would be a nice addition.
Dialog to enter the Key. The clipboard is nice and convenient for my use, but I know that it might be inconvenient to copy the key to the clipboard. Maybe. I haven't thought this through completely.