当我将加密流上传到Amazons S3时,一切正常,直到我尝试关闭cryptuffream(调用刷新最终块方法)。刷新需要很长时间,并导致许多额外的网络流量,我无法解释。这有什么不对?不应该只是刷新最后的字节? 最终结果还可以,以后可以下载文件&解密没有问题。
"Encrypting:"
$myAES = [System.Security.Cryptography.aes]::Create()
$FileStreamWriter = (New-Object Amazon.S3.IO.S3FileInfo($S3Client, $BucketName, $key)).OpenWrite()
$FileStreamReader = New-Object System.IO.FileStream(($SourceFile), [System.IO.FileMode]::Open)
$CryptoStream = New-Object System.Security.Cryptography.CryptoStream($FileStreamWriter, $myAES.CreateEncryptor(), [System.Security.Cryptography.CryptoStreamMode]::Write)
$Data = New-Object Byte[] 16 #16=AES Blocksize
Do{
$NumberOfBytesRead = $FileStreamReader.Read($Data, 0, $Data.count)
$CryptoStream.Write($Data, 0, $NumberOfBytesRead)
}
While ($bytesread -gt 0)
write-host "Closing Streams"
$CryptoStream.Close() #<-Takes ages
$FileStreamReader.Close()
$FileStreamWriter.Close()