15

Azure BLOB の URL をデータベースに保存しています。その URL を使用して BLOB を取得できますか? 実際にはブロブを更新する必要があり、その間に検証が必要です。そのため、そのデータベース エンティティ モデルをローカル モデルに変換し、それらの検証を適用する必要があります。しかし、ローカル モデルには Id,Name,HttpPostedFileBase ファイルがあります。しかし、更新中にそのブロブを取得する方法は? これは私のローカルモデルです

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; }

    } 

Myエンティティモデルはこれです

public partial class BlobApp
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Uri { get; set; }
    }

私が編集しているとき、ブロブを取得する必要があります..私はここで立ち往生しています..誰か助けてくれますか?

public ActionResult Edit(string Id)
        {
            var data=BlobManager.GetBlob(Convert.ToInt32(Id));
            BlobStorageServices _blobstorageservice = new BlobStorageServices();
            CloudBlobContainer container = _blobstorageservice.GetCloudBlobContainer();
            CloudBlockBlob blob = container.GetBlockBlobReference(data.Uri.ToString());

            BlobAppModel model = new BlobAppModel { Id = data.Id, Name = data.Name, File =//This is where I need to get the file//};
            return View("Edit",BlobManager.GetBlob(Convert.ToInt32(Id)));
        }
4

4 に答える 4

27
   CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);

    CloudBlockBlob blob = new CloudBlockBlob(new Uri(imgUrl),storageAccount.Credentials);
于 2014-06-04T11:48:47.413 に答える
11

クリスティアンも述べたように、ブロブの名前がわかっている場合は GetBlockBlobReference を使用できます。それ以外の場合は、完全な URL を使用する場合は、Uri と StorageCredentials オブジェクトを受け取るコンストラクターの 1 つを使用して、単純に新しい CloudBlockBlob オブジェクトを作成できます。Uri に SAS 資格情報が含まれている場合、または BLOB が公開されている場合は、StorageCredentials オブジェクトさえ必要ない場合があります。

于 2013-11-04T23:19:52.007 に答える