标签: azure-storage-blobs

Azure blob存储限​​制和过滤器

适用于多租户应用程序的Azure存储.我们正在开发Azure上的多租户应用程序,每个租户需要大约10,000个租户和大约100 GB到1 TB的数据存储.该应用程序将分别维护文档和二进制内容以及每个租户的元数据.我们正在考虑使用Azure Block Blob存储来存储数据.因为,要求是为每个租户分开数据,我们遇到了以下方法.

  • 为每个租户创建一个单独的存储帐户
  • 这有助于保持使用租户明智,这也有助于计费
  • 在每个存储帐户中创建一个单独的容器,以根据类别进行隔离
  • 将文档与元数据一起存储在块blob存储中.

我们对我们的方法有以下疑问:

  1. 将块blob中的文档或二进制内容与元数据一起存储是一个好主意吗?或者有没有更好的方法来实现它(可能使用SQL Azure用于元数据和blob用于内容,或更好)?
  2. 如何使用元数据上的某些过滤条件查询数据?即检索metadat1 = value1和metadata2 = value2的所有blob
  3. 为每个租户创建一个单独的存储帐户是个好主意吗?
    一个.如果没有,那么我们可以在Azure存储和应用程序中存储租户特定数据的模型可以有效地使用它们吗?
  4. 在可扩展性和高可用性的背景下,Blob存储上读取/写入数据的请求数量是否存在带宽或任何其他限制?
  5. 根据天蓝色定价模型,他们对存储充电,即首先1 TB $ 0.095/GB,接下来49 TB $ 0.08/GB.此费用是针对每个存储帐户还是针对每个订阅的应用程序?
    一个.同样,交易成本适用于每个存储帐户或每个订阅?

azure azure-storage azure-storage-blobs

12
推荐指数
1
解决办法
7440
查看次数

使用.NET 4.5异步将Azure blob异步下载到字符串,等待

我正在尝试使用.NET 4.5异步和等待实现完全异步的 blob下载.

让我们假设整个blob可以立即适应内存,我们想把它保存在一个string.

码:

public async Task<string> DownloadTextAsync(ICloudBlob blob)
{
    using (Stream memoryStream = new MemoryStream())
    {
        IAsyncResult asyncResult = blob.BeginDownloadToStream(memoryStream, null, null);
        await Task.Factory.FromAsync(asyncResult, (r) => { blob.EndDownloadToStream(r); });
        memoryStream.Position = 0;

        using (StreamReader streamReader = new StreamReader(memoryStream))
        {
            // is this good enough?
            return streamReader.ReadToEnd();

            // or do we need this?
            return await streamReader.ReadToEndAsync();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageAccountConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("container1");
CloudBlockBlob blockBlob = container.GetBlockBlobReference("blob1.txt"); …
Run Code Online (Sandbox Code Playgroud)

c# azure azure-storage-blobs async-await .net-4.5

12
推荐指数
1
解决办法
9528
查看次数

使用Node将上载的文件流式传输到Azure blob存储

使用Express with Node,我可以成功上传文件并将其传递到以下代码块中的Azure存储.

app.get('/upload', function (req, res) {
    res.send(
    '<form action="/upload" method="post" enctype="multipart/form-data">' +
    '<input type="file" name="snapshot" />' +
    '<input type="submit" value="Upload" />' +
    '</form>'
    );
});

app.post('/upload', function (req, res) {
    var path = req.files.snapshot.path;
    var bs= azure.createBlobService();
    bs.createBlockBlobFromFile('c', 'test.png', path, function (error) { });
    res.send("OK");
});
Run Code Online (Sandbox Code Playgroud)

这很好用,但Express会创建一个临时文件并先存储图像,然后我从文件中将其上传到Azure.这似乎是一个低效且不必要的步骤,我最终必须管理临时文件目录的清理.

我应该能够使用blobService.createBlockBlobFromStreamAzure SDK中的方法将文件直接流式传输到Azure存储,但我不熟悉Node或Express以了解如何访问流数据.

app.post('/upload', function (req, res) {

    var stream = /// WHAT GOES HERE ?? ///

    var bs= azure.createBlobService();
    bs.createBlockBlobFromStream('c', 'test.png', stream, function (error) { });
    res.send("OK");
});
Run Code Online (Sandbox Code Playgroud)

我发现以下博客表明可能有办法这样做,当然Express也会抓取流数据并解析并将其保存到文件系统中. …

azure azure-storage-blobs node.js express

12
推荐指数
2
解决办法
1万
查看次数

我可以使用其网址获取blob吗?

我将Azure blob url存储到我的数据库中.可以使用该URL获取blob吗?实际上我需要更新blob,在这样做时我需要验证.所以我需要将该数据库实体模型转换为我的本地模型并对它们应用验证.但在我的本地模型中我有Id,Name,HttpPostedFileBase文件.当我插入blob时,我得到blob url并保存它在database.But如何在更新时检索该blob?这是我的本地模特

public class BlobAppModel
    {
        public int Id { get; set; }
        [Required(ErrorMessage="Please enter the name of the image")]
        [Remote("IsNameAvailable","Home",HttpMethod="POST",ErrorMessage="Name Already Exists")]
        public string Name { set; get; }
         [Required(ErrorMessage="Please select an image file")]
        public HttpPostedFileBase File { set; get; }

    } 
Run Code Online (Sandbox Code Playgroud)

我的实体模型就是这个

public partial class BlobApp
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Uri { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

当我编辑它时,我需要得到blob ..我被困在这里..任何人都可以帮助我吗?

public ActionResult Edit(string Id)
        { …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc blob azure-storage-blobs model-validation

12
推荐指数
3
解决办法
2万
查看次数

Azure Blob存储URL:WASB:// vs HTTP://

我看到有不同种类的URL来访问blob存储,如下所示:

wasb://XXXXXXXXXX@XXXXX.blob.core.windows.net

https://XXXXXXXXXX@XXXXX.blob.core.windows.net
Run Code Online (Sandbox Code Playgroud)

有什么不同?可能是差异的原因是什么?

azure azure-storage azure-storage-blobs

12
推荐指数
2
解决办法
9699
查看次数

来自WindowsAzure.Storage的生产中出现403错误

我有一个使用WindowsAzure.Storage API v3的WebForms应用程序.它在开发和一个生产环境中工作正常,但我推出了一个新实例,任何调用Azure Blob存储的代码都会给我403错误.

我已经习惯了这一段时间了,并且它对Blob存储的任何调用失败了,所以不是显示我的代码,而是显示我的堆栈跟踪:

[WebException: The remote server returned an error: (403) Forbidden.]
   System.Net.HttpWebRequest.GetResponse() +8525404
   Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) +1541

[StorageException: The remote server returned an error: (403) Forbidden.]
   Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) +2996
   Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.CreateIfNotExists(BlobContainerPublicAccessType accessType, BlobRequestOptions requestOptions, OperationContext operationContext) +177
   ObsidianData.Azure.Storage.GetContainer(CloudBlobClient client, Containers targetContainer) in D:\Dev\nSource\Obsidian\Source\ObsidianData\Azure\Storage.vb:84
   ObsidianWeb.Leads.HandleListenLink(String fileName, HyperLink link) in D:\Dev\nSource\Obsidian\Source\ObsidianWeb\Bdc\Leads.aspx.vb:188
   ObsidianWeb.Leads.LoadEntity_ContactDetails(BoLead lead) in D:\Dev\nSource\Obsidian\Source\ObsidianWeb\Bdc\Leads.aspx.vb:147
   ObsidianWeb.Leads.LoadEntity(BoLead Lead) in D:\Dev\nSource\Obsidian\Source\ObsidianWeb\Bdc\Leads.aspx.vb:62
   EntityPages.EntityPage`1.LoadEntity() +91
   EntityPages.EntityPage`1.Page_LoadComplete(Object sender, EventArgs e) +151
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4018
Run Code Online (Sandbox Code Playgroud)

这是我试过的......

  • 在此环境中失败的AzureStorageConnectionString肯定适用于生产 …

vb.net asp.net azure azure-storage-blobs

12
推荐指数
1
解决办法
9587
查看次数

托管和非托管磁盘之间的区别

有人能告诉我托管磁盘和非托管磁盘之间的主要优点和区别,托管和非托管磁盘的各种优缺点以及如何才能最好地使用它?

azure azure-storage-blobs azure-managed-disk

12
推荐指数
2
解决办法
1万
查看次数

Azure Blob - 使用Python读取

有人能告诉我是否可以直接从Azure blob存储中读取csv文件作为流并使用Python处理它?我知道它可以使用C#.Net(如下所示)完成,但想知道Python中的等效库来执行此操作.

CloudBlobClient client = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = client.GetContainerReference("outfiles");
CloudBlob blob = container.GetBlobReference("Test.csv");*
Run Code Online (Sandbox Code Playgroud)

python azure azure-storage-blobs

12
推荐指数
4
解决办法
1万
查看次数

从Azure blob存储中读取文件

我想从azure存储中读取一个PDF文件字节,因为我有一个文件路径.

https://hostedPath/pdf/1001_12_Jun_2012_18_39_05_594.pdf
Run Code Online (Sandbox Code Playgroud)

那么可以通过直接传递其路径名来从blob存储中读取内容吗?我也在使用c#.

c# azure azure-storage azure-storage-blobs

11
推荐指数
2
解决办法
2万
查看次数

ConvertFrom-Json:无效的JSON原语:

我试图运行一个从CMS端点获取JSON文件的脚本,将其传递给管道以转换为-json.但是,我收到一个错误,说无效的JSON原语.

ConvertFrom-Json:无效的JSON原语:.在D:\ AzureProject\SetupusingParameterfile.ps1:13 char:75

 $JsonContent = Get-Content $TemplateParameterFileLocal -Raw | Conver ...
Run Code Online (Sandbox Code Playgroud)

CategoryInfo:NotSpecified:(:) [ConvertFrom-Json],ArgumentException + FullyQualifiedErrorId:System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand

我的JSON参数文件的结构与Azure参数文件结构的内联方式一致,示例如下: -

{
"$schema": "http://schema.management.azure.com/schemas/20111-01-01/deploymentParameters.json#",
"contentVersion":"1.0.0.0",
"parameters": 
        {
            "hostingPlanName": {"value": "pilotHosting"},
            "hostingEnvironment": {"value": "pilotHostingenv"},   
            "serverFarmResourceGroup": {"value": "Pilot1H"},
            "sqlserverName": {"value": "pilotsrvrtrialrun11"},
            "administratorLogin": {"value": "sites1H"},
            "administratorLoginPassword": {"value": "abcdefg"},
            "serverName": {"value": "Pilotwebserver"},
            "databaseUsername": {"value": "pilot1Hattabc"},
            "databasePassword": {"value": "pilotdbabc1H"},
        }
}
Run Code Online (Sandbox Code Playgroud)

注意:这篇文章的目的是分享Azure项目PoC期间出现的一些事情,并希望以后能够为某人服务.

powershell json azure azure-storage-blobs azure-web-sites

11
推荐指数
1
解决办法
2万
查看次数