Is there a good resource or apps in appxchange where I can put a upload field to a custom object in visualforce page that uploads file to Amazon s3 account? I don't want to re invent to wheel if something like this is out there.
You can use Drag, Drop & Upload Files to Amazon S3 App for the same (https://appexchange.salesforce.com/listingDetail?listingId=a0N3000000B5ZPqEAN) . I am using it from last 2 years and it has got following features
- Drag and Drop interface to upload file
- You can view/delete your files from Salesforce
- Its free
Also they provide Good Support if you have any issues & they provide additional customizations.
There are quite a number of AppExchange apps that use S3 for storage. I'd be surprised if one of those doesn't fit your needs.
There's also the Amazon Toolkit if you need a custom solution.
As always, if you're directing the upload through Apex (3rd party or custom), you'll need to watch out for file size being limited by platform limits on heap size and callout size. If you're dealing with large files, make sure the AppExchange app supports them; or if doing a custom solution, you may want to investigate client-side direct S3 upload rather than diverting through Apex.