come a long
come a long
With the recent release of our newest feature — photo uploads, our engineering team got the chance to investigate dealing with Amazon S3. Now S3 is a great boon for startups, allowing us to host assets and images without having to deal with setting up and maintaining the necessary to do so. Needless to say, attaching a photo to a pin results in the file being hosted on S3. S3 is great, but figuring your way around it can be a pain, especially if you’re a time-strapped team. So here’s a handy guide as to how we got the BillPin clients uploading images directly to S3 (as opposed to uploading first to our backend, then having our backend send the file to S3).
Usually the first question that we’re asked when we explain that our clients are uploading directly to S3 instead of via our server. Primarily, we did this to save processing and bandwidth costs. Uploading first to our backend and then off to S3 means we incur both incoming and outgoing bandwidth costs.
Here’s our handy guide to getting started with direct uploads to S3 in 10 easy steps
Setting up your buckets is probably the easiest part of this exercise. Log into the AWS Console and create as many buckets as you need. These buckets are the gigantic directories that will hold all your uploaded media.
A thing to note about buckets is that while the console (and indeed, some 3rd party clients) show a folder hierarchy within each bucket, S3 only recognises the bucket itself as a top-level namespace. Any individual files below the bucket exist in a
flat hierarchy, distinguished only by filename.
In the example above, S3 sees two files —
abc123/media2.jpg directly under the bucket
bp-usermedia-dev, and not
Access Policy Controls determine how each bucket may be accessed, and by whom. In our usage scenario, we wanted each client to be able to
A few factors determine the eventual access to items in a bucket. The bucket policy, the token permission, and the individual item’s permissions are evaluated in combination to either allow or deny each request made.
Hello there, thanks for becoming part of the BillPin family. We are glad to have you on board and hope you will love BillPin as you get to use it more. Here are is a quick guide to help you get started..
1. Access anywhere
2. Creating your first pin
A new shared bill
When you land on the billpin homepage on web, you can immediately start adding a new shared bill by entering the amount you paid and a short description for the bill in the form at the top of the page.
If you want to change the payer of the bill, simply hit the “change” button next to “I Paid” and enter the email address of the friend who paid for the bill. If you are already connected with facebook, simply search for your friends name to get going.
On mobile, simply click this iconon the home page to add a new shared bill (at the bottom on iPhone and top right on Android). Just like web, the shared bill interface assumes that you are payer of the bill that you are adding. To change the payer, just tap your image and enter your friends name or email
A new 1-to-1 bill
To add an amount that someone owes you, or you owe someone, click the “Record Payment” button on the top right form. Complete the bill in 3-simple steps by entering friends name or email address, the amount and a short description to go with the bill..
On mobile, hit the pin button and add a new single bill in less than 30 seconds!
3. Add an image or receipt to the bills
You can also attach images and receipts to your bills on both web and mobile by hitting the camera (mobile) or paper clip icon (web) on the single or shared bill pages.
4. Invite friends to BillPin
Share the awesomeness with your friends,invie them to the BillPin family! You can invite friends via email, or just connect with facebook to invite your facebook friends.
Go ahead, give it a swing! And if you have any feedback or suggestions, drop us a quick line at email@example.com.
PS. We will follow up with another blog post shortly, going a bit deeper and explaining all the smaller nifty features to help you become a pro user!