public async Task CreateForWritingAsync()

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)
      });
    }