在Android上从Azure下载大型文件

在Android上从Azure下载大型文件,android,azure,azure-storage-blobs,azure-mobile-services,android-download-manager,Android,Azure,Azure Storage Blobs,Azure Mobile Services,Android Download Manager,我正在开发一个使用azure移动服务的android应用程序。我想从android上的azure存储下载大文件。我想下载大文件块或类似的东西。我怎么做?有java库吗?Blob存储服务支持分块下载数据,因此可以分块下载一个非常大的文件,下载完所有文件后,您可以将它们组合起来创建一个文件 我还没有使用过Android/Java,因此我不知道具体的实现细节,但一般来说,这是您应该做的: 在您尝试下载的文件(blob)上获取共享访问签名(SAS)。您可能会为此目的使用Windows Azure移动服

我正在开发一个使用azure移动服务的android应用程序。我想从android上的azure存储下载大文件。我想下载大文件块或类似的东西。我怎么做?有java库吗?

Blob存储服务支持分块下载数据,因此可以分块下载一个非常大的文件,下载完所有文件后,您可以将它们组合起来创建一个文件

我还没有使用过Android/Java,因此我不知道具体的实现细节,但一般来说,这是您应该做的:

  • 在您尝试下载的文件(blob)上获取共享访问签名(SAS)。您可能会为此目的使用Windows Azure移动服务。确保您获得了SAS对blob的
    读取
    权限。建议使用SAS,因为这样您就不必在设备上共享您的帐户凭据。您可以查看此处的教程,使用移动服务()为blob创建SAS URL
  • 一旦您拥有了sasri,您可以直接使用restapi分块下载blob。您需要调用操作。块大小应在
    范围
    请求头中传递。我不确定Azure的Java存储客户端库是否可以在Android上使用,但如果可以使用,则不必使用REST API,因为客户端库是REST API的包装器
  • 下载完所有块后,您可以将它们组合起来创建一个文件

Blob存储服务支持分块下载数据,因此可以分块下载非常大的文件,下载完所有文件后,您可以将它们组合起来创建文件

我还没有使用过Android/Java,因此我不知道具体的实现细节,但一般来说,这是您应该做的:

  • 在您尝试下载的文件(blob)上获取共享访问签名(SAS)。您可能会为此目的使用Windows Azure移动服务。确保您获得了SAS对blob的
    读取
    权限。建议使用SAS,因为这样您就不必在设备上共享您的帐户凭据。您可以查看此处的教程,使用移动服务()为blob创建SAS URL
  • 一旦您拥有了sasri,您可以直接使用restapi分块下载blob。您需要调用操作。块大小应在
    范围
    请求头中传递。我不确定Azure的Java存储客户端库是否可以在Android上使用,但如果可以使用,则不必使用REST API,因为客户端库是REST API的包装器
  • 下载完所有块后,您可以将它们组合起来创建一个文件

目前Azure存储的Java库不支持Android(这是我们提出的一个功能请求,我们目前正在调查)。在较高级别上,由于安全原因,不建议在移动设备上使用完全共享密钥验证,因为使用SAS或匿名访问是首选方案。如果您的场景只是下载一个blob,那么一个带有范围标头的简单GET请求就足够了,但是您需要实现逻辑来聚合应用程序中的blob范围。

目前Azure存储的Java库不支持Android(这是我们的一个功能请求,我们目前正在调查)。在较高级别上,由于安全原因,不建议在移动设备上使用完全共享密钥身份验证,因为使用SAS或匿名访问是首选方案。如果您的方案只是下载blob,则使用范围标头的简单GET请求就足够了,但您需要实现逻辑来聚合blob你的应用程序中的范围。

我一直在问谷歌这个过时的问题,所以为了完整起见,我添加了这个最新的答案(我试图添加这个作为注释,但太长了)

移动服务的链接是:

Microsoft Azure存储SDK的链接是:


我一直在问谷歌这个过时的问题,所以为了完整起见,我添加了这个最新的答案(我试图添加这个作为评论,但太长了)

移动服务的链接是:

Microsoft Azure存储SDK的链接是:


Azure SDK for Java()是否在Android上工作?我不知道。如果它工作,我可以使用它吗?我正在使用Azure移动服务。不,它现在不工作。Azure SDK for Java()是否在Android上工作?我不知道。如果它工作,我可以使用它吗?我正在使用Azure移动服务。不,它现在不工作。