我有一个iOS应用程序,可以与我开发的REST通信。我使用亚马逊S3存储图像和音频文件。现在,我可以直接从移动应用程序(客户端)上传/下载文件。我目前正面临一些小文件(15-20 kB)上传/下载速度的问题,以及其他问题,比如亚马逊S3不允许超过15分钟的时间偏差(这意味着如果我的客户的时区或日期时间配置不正确,他们将无法从S3上传/下载这些文件。
针对这些问题,我现在面临一个架构决策,即将文件从S3上传/下载到我自己的API,临时存储它们,并将它们上传/下载到移动客户端。换句话说,从这一点变化:
S3 <----> iOS <----> REST API对此:
S3 <----> REST API <----> iOS优势:
缺点:
最好的选择是什么?保持原样,还是开始通过我自己的API开发文件传输?
发布于 2015-05-01 13:20:30
下载和上传小文件的速度可以很容易地通过将几个文件放入一个归档文件来规避(如果不需要压缩文件,最终可以使用0级压缩,例如JPEG文件)。如果用户上传了数百个文件,这将导致两到三个大文件.如果用户只需要上传一两个文件,那么速度就无关紧要了。
错误的日期和时间配置是用户的问题(几乎每一个连接到互联网的移动设备都应该自动同步吗?)您的应用程序可以使用NIST验证设备上的时间是否正确。如果由于某种原因,这是不可能的,那么使用您自己的REST来检查时间是否正确。如果时间不正确,请通知用户,在时间不对之前,同步是不可能的,询问他是否希望您的应用程序自动更正设备的时间。
让应用程序直接与亚马逊的S3交互还是使用REST作为中间人,主要取决于以下因素:
https://softwareengineering.stackexchange.com/questions/280685
复制相似问题