最近私はここで質問をしました。Gaurav Mantriのおかげで、blob azureにメタデータを追加することができました。 AzureBlobStorageクラスで編集した後に私のコード:Azureでメタデータを追加、編集する
public void SaveMetaData(string fileName, string container, string key, string value)
{
var blob = GetBlobReference(fileName, container);
blob.FetchAttributes();
blob.Metadata.Add(key, value);
blob.SetMetadata();
}
と私はこれでmyControllerからそれを呼び出す:コードアップロード取得するためにファイル
public IEnumerable<Attachment> GetUploadedFiles(string container, string blobprefix)
{
if (string.IsNullOrWhiteSpace(container))
container = EPlantDefaultBlobContainer;
var storageAccount = CreateStorageAccountFromConnectionString(GetStorageConnectionString());
var blobContainer = GetBlobContainer(storageAccount, container);
var resultList = new List<Attachment>();
try
{
foreach (IListBlobItem item in blobContainer.ListBlobs(blobprefix, false))
{
var blob = (CloudBlockBlob) item;
var file = new Attachment
{
Name = blob.Name.Substring(blob.Name.LastIndexOf('/') + 1),
Size = blob.Properties.Length,
Extension = Path.GetExtension(blob.Name)
};
resultList.Add(file);
}
}
catch (Exception e)
{
}
return resultList;
}
public JsonResult SaveMetaData(string name, string key, int id)
{
var uploadedFils = _FileStorage.GetUploadedFiles("images", id + "/");
if (!uploadedFils.Any())
_FileStorage.SaveMetaData(name, "images", key, "true");
foreach (var file in uploadedFils)
{
if (name == file.Name)
{
_FileStorage.SaveMetaData(FormatFileName(id, name), "images", key, "true");
}
else
{
_FileStorage.SaveMetaData(FormatFileName(id, file.Name), "images", key, "false");
}
}
return Json("");
}
と、私はこのアクションを呼び出しますアクティブに設定したい画像をクリックします。 初めて動作しますが、2回目のクリックで編集する方法がわかりません。特にAzureを初めて扱うのは初めてですか? この行の背後にあるロジック:ギャラリーが空で、ユーザーが最初に画像をアップロードする際に、このイメージをアクティブに自動的に設定されます。
if (!uploadedFils.Any())
_FileStorage.SaveMetaData(name, "images", key, "true");
2回目と1回目のクリックで何を意味しますか? –
@PeterBons first click画像をアクティブに設定しましたが、ギャラリーに複数の画像があるため、2回目のクリックで別の画像が有効になります – Adam
質問を編集して「GetUploadedFiles」のコードを追加できますか? –