从 blob 存储上传和检索文件

Upload and retrieve file from blob storage

我想在 azure blob 存储中上传文件并在我自己的应用程序中检索该文件。

我的代码:

protected void btnUploadtoCloud_Click(object sender, EventArgs e)
{
         UploadFile();
}
public string UploadFile()
{
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"));
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
        CloudBlobContainer blobContainer = blobClient.GetContainerReference("vest");

        blobContainer.CreateIfNotExist();
        BlobContainerPermissions containerPermissions = new BlobContainerPermissions();

        containerPermissions.PublicAccess = BlobContainerPublicAccessType.Container;

        blobContainer.SetPermissions(containerPermissions);


        CloudBlob blobText = blobContainer.GetBlobReference(fupPicture.FileName);
        blobText.Properties.ContentType = fupPicture.PostedFile.ContentType;
        string blobURL = blobText.Uri.ToString();
        blobText.UploadFromStream(fupPicture.FileContent);
        imgTest.ImageUrl = blobURL;
        return blobURL;
 }

但我的问题是 UploadFile.I 包含图像的第一行,因为我也想显示我的 ref dll。

.

为什么在 RoleEnvironment 中出错。我可以遗漏一些内容吗?

注意:我有 window azure 帐户,我可以轻松部署其他站点。

编辑

根据 Gaurav 的建议,我尝试了:

string cnn = "<add name=\"testconnectionstring\" DefaultEndpointsProtocol=\"http;AccountName=mystorage;AccountKey=A9Jlajksdh69szut9zOfsxWMD/qLaP3Gy6ID9mIarNmCDasdhlyNlAR9wV0NGjqJUZeM4x6x5bTumLv+1nC51clHDl5GTYYPA==" + " />";
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(cnn);

但无法工作我收到错误无效组合。

您收到此错误的原因是因为 RoleEnvironment 仅当您的代码在本地计算模拟器或云中的云服务(Web 角色)上下文中为 运行 时才可用.

因为它是一个 Web 应用程序,我猜您将在 Azure 网站中部署它,您可以简单地使用 AppSettingsReader 从 Web.Config 文件中读取。类似于:

        var rdr = new AppSettingsReader();
        string connectionString = (string) rdr.GetValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", typeof(String));
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);

如果您的应用程序连接到云存储帐户,您的连接字符串将类似于:

DefaultEndpointsProtocol=https;AccountName=your-account-name;AccountKey=your-account-key

要连接到本地存储模拟器,您的连接字符串应如下所示:

UseDevelopmentStorage=true