需要建议:如何与远程用户共享潜在的大型报告?

时间:2016-07-15 20:39:55

标签: email amazon-web-services report

我正在就我正在进行的项目中可能更好的解决方案寻求建议。我首先介绍一些背景,然后是我目前的想法。

背景

  • 我们的客户可以使用我公司的产品生成潜在的大型数据集,以便在他们的行业中使用。生成数据集后,客户端将向我们提交处理请求。
  • 我们希望向客户发送摘要电子邮件,其中包含一些统计图表以及数据集中的采样点,以便他们可以执行一些初始质量控制工作。如果数据集质量差,则无需提交任何请求。
  • 一个问题是图表和采样点可能可能太大而无法通过电子邮件发送。我们希望包含在电子邮件中的图表和采样点是图片。虽然我们可以使用JPEG等低质量格式来节省空间,但我们无法控制摘要电子邮件中包含的数据集数量,因此总大小仍可能超出正常的电子邮件大小限制。
  • 技术而言,我们主要在Ubuntu 14.04上使用Python进行开发。

解决方案的目标

  • 一般来说,我们希望向客户提供类似报告的事情来做一些初步的质量保证。该报告可能包含外部链接,但不需要非常具有交互性。换句话说,静态报告应该没问题。
  • 我们希望减少客户在阅读报告时必须执行的步骤或事项。例如,如果报告只是一封电子邮件,则用户只需要1)。登录和2)。打开电子邮件。如果他们使用客户端软件,他们可能会跳过1)。然后打开并开始阅读。
  • 我们还希望为我们和我们的客户最小化维护额外用户帐户的负担。例如,如果解决方案要求我们注册新的用户帐户,则此解决方案虽然仍然可以接受,但排名不高。
  • 安全性非常重要,因为我们的客户不希望未经授权的第三方阅读他们的报告。
  • 我们希望流程自动化。我们希望该解决方案提供编程接口,以便我们可以自动执行报告发送/共享过程。
  • 效果不是一个关键问题。我们的用户群并不大。我想最多只有几百个。它们也不会经常产生每周最多一次的数据。我们不需要实时响应。即使延迟几个小时仍然可以接受。

我目前的解决方案

  • 可能的解决方案#1:内部网络服务。我可以设置服务器机器并开发自己的Web服务。我们将报告放入我们的数据库,然后客户可以通过互联网进行查询。
  • 可能的解决方案#2:亚马逊网络服务。 AWS非常成熟,但我不确定它们是否会变得昂贵,因为到目前为止我们只想与远程客户共享报告,这对使用AWS来说并不是什么大不了的事。
  • 可能的解决方案#3: Google云端硬盘。我知道Google云端硬盘提供了以编程方式上传和共享的API,但我认为我们需要注册一个专用的Google帐户才能使用它。

任何更好的解决方案??

2 个答案:

答案 0 :(得分:1)

您可以使用AWS S3和Cloudfront。使用AWS SDK和API可以轻松地将文件加载到S3中。然后,您可以使用API​​生成指向文件的安全链接,这些文件只能在特定时间打开,也可以选择从特定IP打开。 如果需要,使用生命周期规则,S3上的文件也可以在特定时间后自动清除 AWS的存储和转移价格相当便宜,请记住S3指示的存储成本是按月计算的,所以如果您只有一个对象加载几天,那么您只需支付几天的费用。
S3:http://aws.amazon.com/s3/pricing

Cloudfront:https://aws.amazon.com/cloudfront/pricing/

以下是适用于AWS的SDK列表: https://aws.amazon.com/tools/#sdk

或者您可以将他们的命令行工具用于Windows批处理或PowerShell脚本: https://aws.amazon.com/tools/#cli

以下是有关如何创建私人内容网址的一些信息: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html

答案 1 :(得分:1)

我建议使用#1和#2选项的混合构建此服务。您可以利用AWS S3进行处理和传输数据,这是非常便宜的。

示例:100GB的成本约为3美元。

此外,AWS S3将非常有用,因为您可以在本地环境中遇到任何灾难,您的数据在S3中是安全的。

为了安全起见,您可以在AWS S3中利用数据加密和签名URL。