Sooperclip 1.0.6
A node.js CLI utility to offer file copy/paste between hosts...
Uses the S3 bucket of your choice for temporary storage.
Objects are stored in cheaper infrequently accessed storage and with server side encryption.
Assumes you have your AWS profile defined or a role on the instance you are running it from.
Installation:
npm install -g sooperclip
Usage:
clip <copy|paste> <filename> -- copies or pastes to/from the clipboard
clip clear -- clears the clipboard
clip config -- configures/reconfigures sooperclip
AWS setup notes:
If you currently have an AWS profile defined that has S3 write access you should be good to go
If you wanted to create an IAM user/profile just for sooperclip you could add an entry to your AWS profile
something like this.
In your ~/.aws/credentials add a profile just for sooperclip
[sooperclip]
aws_access_key_id = <your key id>
aws_secret_access_key = <your secret>
And grants that IAM user a specific role just for sooperclip access with a policy something like...
(clipboard files are prefixed with clip- so you only really need to change the bucket name)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::myclipbucket/clip-*"
}
]
}
You could do that too
TO DO:
~~~~~~~~~~~~~~~
- support multiple users per bucket. Actually this is supported today but care must be taken to choose
unique identifiers manually at setup time or you could clobber each others clipboards. The real fix
for this is probably AWS policy based. So if your unique identifier is your username; Something like...
{
"Sid": "AllowS3ActionsInUserFolder",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Effect":"Allow",
"Resource": ["arn:aws:s3:::myclipbucket/clip-${aws:username}/*"]
}
- maybe use KMS encryption with passphrase to pre-encrypt files before stored in the clipboard bucket
- support text copy / paste and JSON copy paste
- support direct configuration with an access & secret as an alternative to having an AWS profile defined
LOG:
~~~~~~~~~~~~~~~
1.0.6 - added cli option to (re)configure sooperclip and enter for default value
1.0.5 - added notes and an example AWS policy
1.0.4 - added some error checking and infomational response
1.0.0 - initial release
Shameless plug
~~~~~~~~~~~~~~~
https://allthethin.gs