in Core/src/Impl/Storages/AwsS3Storage.cs [189:217]
public async Task CreateForWritingAsync(SymbolStoragePath file, AccessMode mode, Stream stream)
{
if (!stream.CanSeek)
throw new ArgumentException("The stream should support the seek operation", nameof(stream));
var key = SymbolPathToAwsKey(file);
await Task.Yield();
stream.Seek(0, SeekOrigin.Begin);
string md5Hash;
using (var md5Alg = new MD5Managed())
{
md5Hash = Convert.ToBase64String(await md5Alg.ComputeHashAsync(stream));
}
stream.Seek(0, SeekOrigin.Begin);
await myS3Client.PutObjectAsync(new PutObjectRequest
{
BucketName = myBucketName,
Key = key,
InputStream = stream,
AutoCloseStream = false,
Headers =
{
ContentLength = stream.Length,
ContentMD5 = md5Hash
},
CannedACL = GetS3CannedAcl(mode, mySupportAcl)
});
}