将图像从 WebAPI [Azure Mobile APP] 上传到 Azure Web App 中的文件夹

Uploading Image from WebAPi [ Azure Mobile APP] to Folder in Azure Web App

我已经创建了 Azure 移动应用和 Azure Web 应用。我需要做的是使用 Azure 移动应用程序的 webapi 端点从移动设备上传图像,并将其上传到我的 Azure Web 应用程序中的文件夹。

我可以使用 HTTpContext 在我的 api 中获取图像,因此我可以将它保存在网络 api 本身的文件夹中,但这不是我需要的。我不知道如何将它保存到我的 Web 应用程序内的文件夹中。但是 API 和 WebAPP 有相同的资源组。

请指出正确的方向,告诉我如何做到这一点。

///... check rest of request
///... define image path @"image/img1"
///... persist entity with image path
path = Server.MapPath(imagePath);
if(!System.IO.File.Exists(path)) 
     file.SaveAs(Server.MapPath(path));

如果您需要更多帮助,请参阅此处的分步说明。它有点旧,但应该可以解决问题。

http://www.c-sharpcorner.com/blogs/how-to-upload-image-and-save-image-in-project-folder-in-mvc1

更新: 由于您需要在服务器之间共享,因此最好为此设置一个 blob 存储帐户。这是一个演练:

https://www.codeproject.com/articles/490178/how-to-use-azure-blob-storage-with-azure-web-sites

I am able to get the image in my api using HTTpContext so I can save it inside a folder in the webapi itself but it is not what I need. I have no idea how to save it to folder inside my Web App. But API and WebAPP have same resource group.

Azure-Web-App-sandbox 所述文件系统 Restrictions/Considerations:

Every Azure Web App has a home directory (d:\home) stored/backed by Azure Storage. This network share is where applications store their content. This directory is available for the sandbox with read/write access.

因此,对于特定的 Azure Web App,Azure Web App 内容存储在 Azure Storage 中,并在多个实例之间共享。但它不会在不同的网络应用程序之间共享。

要将文件从您的移动应用上传到 Azure Web 应用,您可以利用 KUDU REST API 下的 VFS API,如下所示:

PUT /api/vfs/{path}
//Puts a file at path.

PUT /api/vfs/{path}/
//Creates a directory at path. The path can be nested, e.g. `folder1/folder2`.

注意:您需要使用基本身份验证。详细代码片段,可以关注here.

此外,正如 rahicks 指出的那样,您可以直接将资源上传到中央数据存储中,然后它们将在您的多个应用程序中被访问。您还可以利用 Azure Storage Client Library for .NET and directly upload images to your blob storage. Also, you could leverage the storage client library in your azure web app for reading/writing your resources. Detailed tutorials, you could follow here. Moreover, you could use Azure Storage Explorer 来管理您的存储资源。