email - Need advice: How to share a potentially large report to remote users? -
i asking advice on possibly better solutions part of project i'm working on. i'll first give background , current thoughts.
background
- our clients can use company's products generate potentially large data sets use in industry. when data sets generated, clients file processing request us.
- we want send clients a summary email contains statistical charts sampling points data sets can initial quality control work. if data sets of bad quality, don't need file request.
- one problem charts , sampling points can potentially large sent in email. charts , sampling points want include in emails pictures. although can use low-quality format such jpeg save space, cannot control how many data sets included in summary email, total size still exceed normal email size limit.
- in terms of technologies, developing in python on ubuntu 14.04.
goals of solution
- in general, want present report-like thing clients initial qa. report may contains external links not need interactive. in other words, static report should fine.
- we want reduce steps or things our clients must read report. example, if report can email, user needs 1). log in , 2). open email. if use client software, may skip 1). , open , begin read.
- we want minimize burden of maintaining user accounts both , our clients. example, if solution requires register new user account, solution is, although still acceptable, not ranked high.
- security important because our clients don't want reports read unauthorized third parties.
- we want process automated. want solution provide programming interface can automate report sending/sharing process.
- performance not critical issue. our user base not large. think @ in hundreds. don't generate data frequently, @ once week. don't need real-time response. delay of few hours still acceptable.
my current thoughts of solution
- possible solution #1: in-house web service. can set server machine , develop our own web service. put report our database , clients can query via internet.
- possible solution #2: amazon web service. aws quite mature i'm not sure if expensive because far wanna share report our remote clients doesn't big deal use aws.
- possible solution #3: google drive. know google drive provides api uploading , sharing programmatically, think need register dedicated google account use that.
any better solutions??
you possibly use aws s3 , cloudfront. files can loaded s3 using aws sdk's , api. can use api generate secure links files can opened specific time , optionally specific ip.
files on s3 can automatically cleaned after specific time if needed using lifecycle rules.
storage , transfer prices cheap aws , remember s3 storage cost indicated month if have object loaded few days pay few days.
s3: http://aws.amazon.com/s3/pricing
cloudfront: https://aws.amazon.com/cloudfront/pricing/
here's list of sdk's aws: https://aws.amazon.com/tools/#sdk
or can use command line tools windows batch or powershell scripting: https://aws.amazon.com/tools/#cli
here's info on how private content urls created: http://docs.aws.amazon.com/amazoncloudfront/latest/developerguide/privatecontent.html
Comments
Post a Comment