/// <summary> /// Adds an operation to be submitted as part of the batch. /// </summary> /// <param name="blockBlob">The <see cref="CloudBlockBlob"/> whose tier will be set.</param> /// <param name="standardBlobTier">A <see cref="StandardBlobTier"/> representing the tier to set.</param> /// <param name="accessCondition">An <see cref="AccessCondition"/> object that represents the condition that must be met in order for the request to proceed. If <c>null</c>, no condition is used.</param> /// <param name="blobRequestOptions">A <see cref="BlobRequestOptions"/> object that specifies additional options for the request.</param> public void AddSubOperation(CloudBlockBlob blockBlob, StandardBlobTier standardBlobTier, AccessCondition accessCondition = default(AccessCondition), BlobRequestOptions blobRequestOptions = default(BlobRequestOptions)) { CommonUtility.AssertInBounds("operationCount", this.Operations.Count, 0, Constants.MaxSubOperationPerBatch - 1); CommonUtility.AssertNotNull("blockBlob", blockBlob); CommonUtility.AssertNotNull("standardBlobTier", standardBlobTier); this.Operations.Add(blockBlob.SetStandardBlobTierImpl(standardBlobTier, default(RehydratePriority?), accessCondition, blobRequestOptions ?? BlobRequestOptions.BaseDefaultRequestOptions)); }
private void SetJobInputAssetArchive(JobInput jobInput, StandardBlobTier inputAssetStorageTier) { if (jobInput is JobInputAsset jobInputAsset && inputAssetStorageTier != StandardBlobTier.Unknown) { Asset inputAsset = GetEntity <Asset>(MediaEntity.Asset, jobInputAsset.AssetName); StorageBlobClient blobClient = new StorageBlobClient(this.MediaAccount, inputAsset.StorageAccountName); CloudBlockBlob[] blobs = blobClient.ListBlobContainer(inputAsset.Container, null); foreach (CloudBlockBlob blob in blobs) { blob.SetStandardBlobTierAsync(inputAssetStorageTier); } } }
static void ProcessBlobDirectory(IEnumerable <IListBlobItem> list, StandardBlobTier tier, string directoryFilter) { bool hadNewLine = false; foreach (var item in list) { var type = item.GetType(); if (type == typeof(CloudBlobDirectory)) { var directory = (CloudBlobDirectory)item; if (directoryFilter == null || directory.Prefix == $"{directoryFilter}/") { Console.WriteLine($"Processing {directory.Uri.AbsolutePath} directory"); ProcessBlobDirectory(directory.ListBlobs(), tier, null); } else { Console.WriteLine($"Skipping {directory.Uri.AbsolutePath} directory"); } hadNewLine = true; } else if (type == typeof(CloudBlockBlob)) { CloudBlockBlob blob = (CloudBlockBlob)item; var blobTier = blob.Properties.StandardBlobTier; if (blobTier != tier) { Console.WriteLine($"Updating {blob.Name} blob tier to {tier}"); blob.SetStandardBlobTier(tier); hadNewLine = true; } else { Console.Write($"."); hadNewLine = false; } } else { Console.WriteLine($"Unknown item type {type} for {item.Uri}"); hadNewLine = true; } } if (!hadNewLine) { Console.WriteLine($"Done"); } }
public async Task <bool> SetAccessTierAsync(CloudBlockBlob targetBlob, StandardBlobTier tier) { var accountProperties = await targetBlob.Container.GetAccountPropertiesAsync().ConfigureAwait(false); if (!PermittedCoolBlobTierStorageKinds.Contains(accountProperties.AccountKind)) { log.LogWarning($"Unable to set target blob access tier to 'Cool' as the target storage account " + $"(${accountProperties.AccountKind}) does not support blob access tier settings"); return(false); } await targetBlob.SetStandardBlobTierAsync(tier).ConfigureAwait(false); log.LogInformation("Access tier for target blob set to 'cool'"); return(true); }
public virtual Task SetStandardBlobTierAsync(StandardBlobTier standardBlobTier, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken) { return(this.failoverExecutor.ExecuteAsync(x => x.SetStandardBlobTierAsync(standardBlobTier, accessCondition, options, operationContext, cancellationToken))); }
public virtual Task SetStandardBlobTierAsync(StandardBlobTier standardBlobTier) { return(this.failoverExecutor.ExecuteAsync(x => x.SetStandardBlobTierAsync(standardBlobTier))); }
public Task SetStandardBlobTierAsync(CloudBlockBlob blob, AccessCondition accessCondition, StandardBlobTier tier, RehydratePriority?rehydratePriority, BlobRequestOptions options, OperationContext operationContext, CancellationToken cmdletCancellationToken) { throw new NotImplementedException(); }
public override Task SetStandardBlobTierAsync(StandardBlobTier standardBlobTier, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken) { return(base.SetStandardBlobTierAsync(standardBlobTier, accessCondition, options, operationContext, cancellationToken)); }
public override Task SetStandardBlobTierAsync(StandardBlobTier standardBlobTier) { return(base.SetStandardBlobTierAsync(standardBlobTier)); }
public virtual Task SetStandardBlobTierAsync(StandardBlobTier standardBlobTier, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken) { throw new System.NotImplementedException(); }
/// <summary> /// Changes the access tier of a block blob in a blob container. /// </summary> /// <param name="containerName">Name of the blob container.</param> /// <param name="blobName">Name of the blob.</param> /// <param name="targetTier"><see cref="StandardBlobTier"/> which indicates the new access tier for the blob.</param> /// <returns>True or false.</returns> public static async Task <bool> ChangeAccessTier(string containerName, string blobName, StandardBlobTier targetTier) { try { CloudBlockBlob blob = _blobClient.GetContainerReference(containerName).GetBlockBlobReference(blobName); await blob.SetStandardBlobTierAsync(targetTier); return(true); } catch (Exception exception) { return(false); } }
/// <summary> /// アップロード /// </summary> /// <param name="storageAccount"></param> /// <param name="containerName"></param> /// <param name="blobName"></param> /// <param name="stream"></param> /// <param name="standardBlobTier"></param> /// <param name="shouldBlobDelete"></param> /// <returns></returns> /// <remarks> /// 層を指定してアップロードすることが出来ない。 /// アップロード後に層を設定する or コンテナの既定の層を変更する(Azure Portal) /// 本メソッドによる方法は、既定の層に置いてある時間分のコスト+層移動のコストがかかるので注意 /// </remarks> public static async Task <bool> UploadStreamAsync(CloudStorageAccount storageAccount, string containerName, string blobName, Stream stream, StandardBlobTier standardBlobTier = StandardBlobTier.Unknown, bool shouldBlobDelete = false) { // blobコンテナへの参照を取得する var container = GetContainerReference(storageAccount, containerName); // コンテナが存在しない場合作成する container.CreateIfNotExists(); // コンテナからblobブロックの参照を取得する // フォルダ階層ありのアップロードを行う場合、blobNameを「folder/image.jpg」のようにする CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName); // 指定があれば既存のBlobを削除 if (shouldBlobDelete) { await blockBlob.DeleteIfExistsAsync(); } // シーク位置を初期位置に戻す stream.Seek(0, SeekOrigin.Begin); // ファイルをアップロードする await blockBlob.UploadFromStreamAsync(stream); // 指定があれば層を設定 if (standardBlobTier != StandardBlobTier.Unknown) { await blockBlob.SetStandardBlobTierAsync(standardBlobTier); } return(await Task.FromResult(true)); }
/// <summary> /// 層変更 /// </summary> /// <param name="storageAccount"></param> /// <param name="containerName"></param> /// <param name="blobName"></param> /// <param name="standardBlobTier"></param> /// <returns></returns> public static async Task <bool> SetStandardBlobTierAsync(CloudStorageAccount storageAccount, string containerName, string blobName, StandardBlobTier standardBlobTier) { // blobコンテナへの参照を取得する var container = GetContainerReference(storageAccount, containerName); // コンテナからblobブロックの参照を取得する CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName); // 層変更 await blockBlob.SetStandardBlobTierAsync(standardBlobTier); return(await Task.FromResult(true)); }
public IAzureBlobProviderEventConfigurator WithAccessTier(StandardBlobTier accessTier) { _accessTierBuilder = ev => accessTier; return(this); }
private RESTCommand <NullType> SetStandardBlobTierImpl(StandardBlobTier standardBlobTier, AccessCondition accessCondition, BlobRequestOptions options) { throw new System.NotImplementedException(); }
public JsonResult Create(string transformName, string jobName, string jobDescription, string jobPriority, string inputFileUrl, string inputAssetName, StandardBlobTier inputAssetStorageTier, string streamingPolicyName, ContentProtection contentProtection) { try { Job job = null; string authToken = HomeController.GetAuthToken(Request, Response); using (MediaClient mediaClient = new MediaClient(authToken)) { bool videoAnalyzerPreset = false; bool audioAnalyzerPreset = false; Transform transform = mediaClient.GetEntity <Transform>(MediaEntity.Transform, transformName); foreach (TransformOutput transformOutput in transform.Outputs) { if (transformOutput.Preset is VideoAnalyzerPreset) { videoAnalyzerPreset = true; } else if (transformOutput.Preset is AudioAnalyzerPreset) { audioAnalyzerPreset = true; } } MediaJobOutputPublish outputAssetPublish = new MediaJobOutputPublish() { InputAssetStorageTier = inputAssetStorageTier, StreamingPolicyName = streamingPolicyName, ContentProtection = contentProtection, }; string insightId = null; Asset inputAsset = string.IsNullOrEmpty(inputAssetName) ? null : mediaClient.GetEntity <Asset>(MediaEntity.Asset, inputAssetName); if (mediaClient.IndexerEnabled() && (videoAnalyzerPreset || audioAnalyzerPreset)) { insightId = mediaClient.IndexerUploadVideo(inputFileUrl, inputAsset, jobPriority, videoAnalyzerPreset, audioAnalyzerPreset); } if (!string.IsNullOrEmpty(transformName)) { MediaJobOutputInsight outputInsight = new MediaJobOutputInsight() { Id = insightId, VideoIndexer = videoAnalyzerPreset, AudioIndexer = audioAnalyzerPreset }; job = mediaClient.CreateJob(transformName, jobName, jobDescription, jobPriority, inputFileUrl, inputAsset, null, outputAssetPublish, outputInsight, true); } } return(Json(job)); } catch (ValidationException ex) { Error error = new Error() { Type = HttpStatusCode.BadRequest, Message = ex.Message }; return(new JsonResult(error) { StatusCode = (int)error.Type }); } catch (ApiErrorException ex) { return(new JsonResult(ex.Response.Content) { StatusCode = (int)ex.Response.StatusCode }); } }
/// <summary> /// テキストのアップロード /// </summary> /// <param name="storageAccount"></param> /// <param name="containerName"></param> /// <param name="blobName"></param> /// <param name="uploadText"></param> /// <param name="standardBlobTier"></param> /// <param name="shouldBlobDelete"></param> /// <returns></returns> /// <remarks> /// </remarks> public static async Task <bool> UploadTextAsync(CloudStorageAccount storageAccount, string containerName, string blobName, string uploadText, StandardBlobTier standardBlobTier = StandardBlobTier.Unknown, bool shouldBlobDelete = false) { // blobコンテナへの参照を取得する var container = GetContainerReference(storageAccount, containerName); // コンテナが存在しない場合作成する container.CreateIfNotExists(); // コンテナからblobブロックの参照を取得する CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName); // 指定があれば既存のBlobを削除 if (shouldBlobDelete) { await blockBlob.DeleteIfExistsAsync(); } // テキストをアップロードする await blockBlob.UploadTextAsync(uploadText); // 指定があれば層を設定 if (standardBlobTier != StandardBlobTier.Unknown) { await blockBlob.SetStandardBlobTierAsync(standardBlobTier); } return(await Task.FromResult(true)); }
/// <summary> /// Return a task that asynchronously set block blob Tier /// </summary> /// <param name="blob">CloudBlockBlob object</param> /// <param name="tier">block blob Tier</param> /// <param name="accessCondition">Access condition</param> /// <param name="options">Blob request options</param> /// <param name="operationContext">An object that represents the context for the current operation.</param> public Task SetStandardBlobTierAsync(CloudBlockBlob blob, AccessCondition accessCondition, StandardBlobTier tier, RehydratePriority?rehydratePriority, BlobRequestOptions options, XSCL.OperationContext operationContext, CancellationToken cmdletCancellationToken) { return(blob.SetStandardBlobTierAsync(tier, rehydratePriority, accessCondition, options, operationContext, cmdletCancellationToken)); }
public virtual Task SetStandardBlobTierAsync(StandardBlobTier standardBlobTier) { throw new System.NotImplementedException(); }