protected override async Task <Result <string> > TryGetSasUrlCore(OperationContext context, string storageId, DateTime expiry) { if (SasUrls.TryGetValue(storageId, out var lazySasUrl) && lazySasUrl.GetValueAsync().IsCompleted) { return(await lazySasUrl.GetValueAsync()); } return(new ErrorResult("Blob is not present in storage")); }
protected override async Task <Result <string> > UploadFileCoreAsync(OperationContext context, AbsolutePath file, string name, bool garbageCollect = false) { var lazySasUrl = SasUrls.GetOrAdd(name, new AsyncLazy <string>(async() => { await UploadFileCompletion.Value; return($"https://{Name}.azure.blob.com?blobName={name}&token={Guid.NewGuid()}&file={Uri.EscapeDataString(file.Path)}"); })); await lazySasUrl.GetValueAsync(); return(name); }