在开发移动应用程序时将文件上传到cdn的最佳做法?

时间:2016-01-30 08:48:58

标签: android azure mobile azure-mobile-services azure-storage-blobs

我正在制作移动应用程序。我使用Azure移动服务作为构建移动应用程序的后端服务。在移动应用程序中,我必须将图像上传到azure云存储。我可以用两种方法做。

  1. 从客户端应用程序上传文件

  2. 通过向服务器发送字节数组或base64字符串的文件进行uploding 和服务器将该文件上传给他们

  3. 我认为第一种方法很好,因为它直接上传文件而不是去服务器并再次推送到azure存储。

    我不知道哪个approch好。任何帮助都是适当的

3 个答案:

答案 0 :(得分:3)

正如David所提到的,这个问题有点广泛而且与CDN无关,但在Azure移动服务的范围内,我建议选择#1,因为它提供了一些好处,包括(但不限于):

  • 最大限度地降低移动服务的负载,可能无需扩展服务以跟上文件管理的需要
  • 能够使用旨在处理来自客户端的blob管理的存储API,并避免在服务中实现和维护类似的API(包括支持恢复上传/下载以及移动应用程序的其他优秀功能)
  • 能够(更轻松地)使用Azure存储提供的不同地理位置,让客户端使用最近的位置上传和下载文件。

列表继续......

建议仍然是从您的服务公开API以允许客户端请求SAS令牌以提供对存储的经过身份验证的访问。此方法类似于Mobile Apps File Management SDK使用的方法。

我希望这有帮助!

答案 1 :(得分:0)

您可以使用像Filestack这样的第三方服务来处理上传和存储文件和CDN传递。

您可以使用pick and store method

将文件直接上传到Azure
filepicker.pickAndStore(
  {
    mimetype:"image/*",
    multiple: true
  },
  {
    location:"azure"
  },
  function(Blobs){
    console.log(JSON.stringify(Blobs));
  },
  function(error){
//  console.log(JSON.stringify(error)); - print errors to console
  },
  function(progress){
    console.log(JSON.stringify(progress));
  }
);

然后上传的每个文件都会生成一个CDN网址,您可以使用该网址在应用程序中传送图像。不确定您是否已经查看了您想要使用的CDN,但Filestack与Fastly合作,因此您拥有所有功能,这是最好的功能之一。

答案 2 :(得分:-1)

我使用Cloudinary是用于网络或移动开发的图像后端,它非常容易将图像上传到CDN。