Example #1
0
        public async Task StoreAsync(string relativePath, Func <Stream, Task> write, BlobStoreOptions options = BlobStoreOptions.None)
        {
            var absolutePath = ResolvePath(relativePath, createDirectories: true);

            using (var outputStream = new FileStream(absolutePath, options == BlobStoreOptions.Overwrite ? FileMode.Create : FileMode.CreateNew, FileAccess.Write, FileShare.Read))
            {
                await write(outputStream);
            }
        }
Example #2
0
        public async Task StoreAsync(string relativePath, IBlob blob, BlobStoreOptions options = BlobStoreOptions.None)
        {
            var absolutePath = ResolvePath(relativePath, createDirectories: true);

            using (var inputStream = blob.PreferAsync ? await blob.OpenReadAsync() : blob.OpenRead())
                using (var outputStream = new FileStream(absolutePath, options == BlobStoreOptions.Overwrite ? FileMode.Create : FileMode.CreateNew, FileAccess.Write, FileShare.Read))
                {
                    await inputStream.CopyToAsync(outputStream);
                }
        }
Example #3
0
        public void Store(string relativePath, IBlob blob, BlobStoreOptions options = BlobStoreOptions.None)
        {
            var absolutePath = ResolvePath(relativePath, createDirectories: true);

            using (var inputStream = blob.OpenRead())
                using (var outputStream = new FileStream(absolutePath, options == BlobStoreOptions.Overwrite ? FileMode.Create : FileMode.CreateNew, FileAccess.Write, FileShare.Read))
                {
                    inputStream.CopyTo(outputStream);
                }
        }
Example #4
0
        public async Task StoreAsync(string relativePath, IBlob blob, BlobStoreOptions options = BlobStoreOptions.None)
        {
            var containerClient = await GetContainerClientAsync();

            var blobClient = containerClient.GetBlobClient(relativePath);

            if (options != BlobStoreOptions.Overwrite && await blobClient.ExistsAsync())
            {
                throw new IOException("Blob already exists");
            }

            using (var inputStream = await blob.OpenReadAsync())
            {
                await blobClient.UploadAsync(inputStream);
            }
        }
Example #5
0
        public void Store(string relativePath, IBlob blob, BlobStoreOptions options = BlobStoreOptions.None)
        {
            var containerClient = GetContainerClient();

            var blobClient = containerClient.GetBlobClient(relativePath);

            if (options != BlobStoreOptions.Overwrite && blobClient.Exists())
            {
                throw new IOException("Blob already exists");
            }

            using (var inputStream = blob.OpenRead())
            {
                blobClient.Upload(inputStream);
            }
        }
Example #6
0
        public void Store(string relativePath, Action <Stream> write, BlobStoreOptions options = BlobStoreOptions.None)
        {
            var containerClient = GetContainerClient();

            var blobClient = containerClient.GetBlobClient(relativePath);

            if (options != BlobStoreOptions.Overwrite && containerClient.Exists())
            {
                throw new IOException("Blob already exists");
            }

            // OpenWriteAsync is no longer available
            using var bufferStream = new MemoryStream();
            write(bufferStream);
            bufferStream.Seek(0, SeekOrigin.Begin);

            blobClient.Upload(bufferStream);
        }
Example #7
0
        public async Task StoreAsync(string relativePath, Func <Stream, Task> write, BlobStoreOptions options = BlobStoreOptions.None)
        {
            var containerClient = await GetContainerClientAsync();

            var blobClient = containerClient.GetBlobClient(relativePath);

            if (options != BlobStoreOptions.Overwrite && await containerClient.ExistsAsync())
            {
                throw new IOException("Blob already exists");
            }

            // OpenWriteAsync is no longer available
            using var bufferStream = new MemoryStream();
            await write(bufferStream);

            bufferStream.Seek(0, SeekOrigin.Begin);

            await blobClient.UploadAsync(bufferStream);
        }