NServiceBus.FileShareDataBusImplementation.Put C# (CSharp) Method

Put() public method

public Put ( Stream stream, System.TimeSpan timeToBeReceived ) : Task
stream Stream
timeToBeReceived System.TimeSpan
return Task
        public async Task<string> Put(Stream stream, TimeSpan timeToBeReceived)
        {
            var key = GenerateKey(timeToBeReceived);

            var filePath = Path.Combine(basePath, key);

            Directory.CreateDirectory(Path.GetDirectoryName(filePath));

            using (var output = new FileStream(filePath, FileMode.CreateNew, FileAccess.Write, FileShare.Read, 4096, FileOptions.Asynchronous))
            {
                const int bufferSize = 32*1024;
                await stream.CopyToAsync(output, bufferSize).ConfigureAwait(false);
            }

            logger.DebugFormat("Saved stream to '{0}'.", filePath);

            return key;
        }