我们的Azure blob存储证书今天已过期.这不是我们提供的证书,而是Microsoft提供的证书,如下图所示.如何解决这个问题呢?我试过寻找解决方案,但一无所获.我们的应用程序无法连接到存储,因为证书已过期,我们收到错误消息,指出:无法建立SSL/TLS安全通道的信任关系

我正在开发一个ASP.Net MVC 4应用程序,我正在使用Azure Blob来存储我的用户要上传的图像.我有以下代码:
 var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnection"].ConnectionString);
 var blobStorage = storageAccount.CreateCloudBlobClient();
 //merchantKey is just a GUID that is asociated with the merchant
 var containerName = ("ImageAds-" + merchant.merchantKey.ToString()).ToLower();
 CloudBlobContainer container = blobStorage.GetContainerReference(containerName);
 if (container.CreateIfNotExist())
    {
       //Upload the file
    } 
一旦if语句被删除,我就会收到以下异常:
  {"The remote server returned an error: (400) Bad Request."}
我以为这是容器的名称,但我没有看到任何错误.连接字符串似乎创建了一个包含blob所有详细信息的良好存储空间.我不知所措.我研究了网络,每个人都说这是一个命名问题,但我发现它没有任何问题.
我使用的测试容器名称:  imageads-57905553-8585-4d7c-8270-be9e611eda81
Container有以下uri: {http://127.0.0.1:10000/devstoreaccount1/imageads-57905553-8585-4d7c-8270-be9e611eda81}
更新:  
我已将容器名称更改为just image,我仍然得到相同的异常.开发连接字符串如下:<add name="StorageConnection" connectionString="UseDevelopmentStorage=true" />
azure blobstorage azure-storage azure-storage-blobs asp.net-mvc-4
我正在寻找迁移到Windows Azure而不是典型的托管,但我不确定如何最好地存储图像.搜索后我发现有两种可能的解决方案 - Blob存储或Azure驱动器.
我已经研究了Blob存储,虽然我已经开始习惯这个想法,但它需要对我们的CMS进行大量的修改.在我的搜索中,我偶然发现了Azure驱动器,如果我理解正确创建了一个虚拟硬盘驱动器,它允许您的应用程序像在普通服务器上一样运行.
Azure驱动器在blob存储上有任何缺点吗?听起来使用Azure驱动器而不是Blob存储将当前应用程序迁移到Azure会更容易,但我只是想检查一下这里没有任何重大缺陷.
谢谢
拍
是否可以创建一个html表单,以允许Web用户直接将文件上传到azure blob商店,而无需使用其他服务器作为中介?S3和GAW blobstore都允许这样做但我无法找到对azure blob存储的任何支持.
我的理解是Azure CloudAppendBlob不会出现并发问题,因为您只能附加到此blob存储,并且不需要比较E-tags.正如这篇文章所述:
特别:
此外,Append Blob支持让多个客户端写入同一个blob而无需同步(与块和页面blob不同)
但是,以下单元测试提出:
412未满足指定的附加位置条件.
堆栈跟踪
Microsoft.WindowsAzure.Storage.Blob.BlobWriteStream.Flush()
Microsoft.WindowsAzure.Storage.Blob.BlobWriteStream.Commit()
Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob.UploadFromStreamHelper
Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob.AppendFromStream
Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob.AppendFromByteArray
Microsoft.WindowsAzure.Storage.Blob.CloudAppendBlob.AppendText
这是单元测试.也许该服务将处理来自不同上下文的请求,但不是这样的并行?
    [TestMethod]
    public void test_append_text_concurrency()
    {
        AppendBlobStorage abs = new AppendBlobStorage(new    TestConnectConfig(), "testappendblob");
        string filename = "test-concurrent-blob";
        abs.Delete(filename);                       
        Parallel.Invoke(
            () => { abs.AppendText(filename, "message1\r\n"); },
            () => { abs.AppendText(filename, "message2\r\n"); }
        );
        string text = abs.ReadText(filename);
        Assert.IsTrue(text.Contains("message1"));
        Assert.IsTrue(text.Contains("message2"));
    }
AppendBlobStorage中的方法
    public void AppendText(string filename, string text)
    {
        CloudAppendBlob cab = m_BlobStorage.BlobContainer.GetAppendBlobReference(filename);
        // Create if it doesn't exist
        if (!cab.Exists())
        {
            try
            {
                cab.CreateOrReplace(AccessCondition.GenerateIfNotExistsCondition(), null, null); …我没有在网上看到任何关于如何获取位于BlobContainerClient.
以前,我使用过这些Microsoft.Azure.Storage软件包,但后来它们已被弃用。我扫描目录中所有 blob 的旧代码是:
public async Task<void> ListAllBlobs(string path)
{
    var myContainer = await GetCloudBlobClientAsync();
    var directory = myContainer.GetDirectoryReference(path);
    var blobs = await directory.ListBlobsSegmentedAsync(true, BlobListingDetails.None, 
        blobSettings.MaxResult, null, null, null);
    var results = blobs.Results;
    foreach(CloudBlockBlob b in results)
    {
        // non-relevant code
    }
}
private async Task<CloudBlobContainer> GetCloudBlobClientAsync()
{
    var storageAccount = CloudStorageAccount.Parse(azureBlobStorageConnectionString);
    var blobClient = storageAccount.CreateCloudBlobClient();
    var container = blobClient.GetContainerReference(blobStorageSettings.ContainerName);
    if (!await container.ExistsAsync())
    {
        await container.CreateAsync();
    }
    return container;
}
本质上,我将上面的代码从Microsoft.Azure.Storageover移至Azure.Storage.Blobs.
如果我要重新创建 …
我有大约110,000张各种格式的图像(jpg,png和gif)和大小(2-40KB)本地存储在我的硬盘上.我需要将它们上传到Azure Blob存储.在这样做时,我需要设置一些元数据和blob的ContentType,否则它是一个直接的批量上传.
我目前正在使用以下内容来处理一次上传一个图像(并行超过5-10个并发任务).
static void UploadPhoto(Image pic, string filename, ImageFormat format)
{
    //convert image to bytes
    using(MemoryStream ms = new MemoryStream())
    {
        pic.Save(ms, format);
        ms.Position = 0;
        //create the blob, set metadata and properties
        var blob = container.GetBlobReference(filename);
        blob.Metadata["Filename"] = filename;
        blob.Properties.ContentType = MimeHandler.GetContentType(Path.GetExtension(filename));
        //upload!
        blob.UploadFromStream(ms);
        blob.SetMetadata();
        blob.SetProperties();
    }
}
我想知道是否还有其他技术可以用来处理上传,尽可能快.此特定项目涉及将大量数据从一个系统导入另一个系统,并且出于客户原因,它需要尽快发生.
MS已经宣布像blob存储一样的目录,我正试图像目录一样使用它.通过名称保存一些blob:
Common\Service1\Type1\Object1
Common\Service1\Type1\Object2
Common\Service1\Type2\Object1
Common\Service1\Type2\Object2
Common\Service1\Type3\Object1
Common\Service1\Type3\Object2
Common\Service1\Type3\Object3
我想有可能枚举子目录,例如我有blobclient参考Common容器名称,我想得到子容器列表Type1, Type2, Type3.是否可以获取某些目录中的子目录列表.使用ListBlobs返回当前容器中的完整blob列表.
我使用plone.app.blob将大型ZODB对象存储在blobstorage目录中.这减少了Data.fs上的大小压力,但我无法找到有关备份此数据的任何建议.
我已经通过将网络备份工具指向repozo备份目录来备份Data.fs.我应该简单地将该工具指向blobstorage目录来备份我的blob吗?
如果正在重新打包数据库或在复制过程中添加和删除blob,该怎么办?blobstorage目录中是否有必须按特定顺序复制的文件?
我有一个名为"pictures"的容器,里面有一些名为"Folder1","Folder2"的文件夹.因此,我的blob文件将像" http://optimus.blob.core.windows.net/pictures/Folder1/IMG123.png "一样进行处理.使用下面的C#代码删除文件夹中的文件,
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(*AzureConnectionString*);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("pictures");
var blobs = container.ListBlobs("Folder1", true);
foreach (var blob in blobs)
{
  container.GetBlockBlobReference(((CloudBlockBlob)blob).Name).DeleteIfExists();
}
删除"Folder1"中的所有文件后,它将为空.我试图删除空文件夹,但无法找到方法.是否可以删除文件夹?任何帮助都感激不尽.提前致谢.
blobstorage ×10
azure ×8
c# ×4
blob ×1
concurrency ×1
directory ×1
drive ×1
list ×1
plone ×1
python ×1
subdirectory ×1
zodb ×1
zope ×1