Доброе утро, у меня есть настольное приложение, которое загружает файлы в службу WCF, а затем служба WCF загружается в Amazon S3.C# загрузка в реальном времени от клиента к серверу до amazon s3
Это мой метод WCF, который получает файл и загружает его на S3.
public void UploadFile(RemoteFileInfo request)
{
config = new AmazonS3Config();
config.CommunicationProtocol = Protocol.HTTP;
accessKeyID = "XXXXXXX";
secretAccessKeyID = "YYYYYYYY";
client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKeyID, secretAccessKeyID, config);
int chunkSize = 2048;
byte[] buffer = new byte[chunkSize];
using (System.IO.MemoryStream writeStream = new System.IO.MemoryStream())
{
do
{
// read bytes from input stream
int bytesRead = request.FileByteStream.Read(buffer, 0, chunkSize);
if (bytesRead == 0) break;
// simulates slow connection
System.Threading.Thread.Sleep(3);
// write bytes to output stream
writeStream.Write(buffer, 0, bytesRead);
} while (true);
// report end
Console.WriteLine("Done!");
// start the uploading to S3
PutObjectRequest fileRequest = new PutObjectRequest();
fileRequest.WithInputStream(writeStream);
fileRequest.Key = "testfile.pdf";
fileRequest.WithBucketName("tempbucket");
fileRequest.CannedACL = S3CannedACL.Private;
fileRequest.StorageClass = S3StorageClass.Standard;
client.PutObject(fileRequest);
writeStream.Close();
}
}
На моем клиенте я получаю прогресс в реальном времени, когда загрузить файл в службы WCF, но когда я получаю 100% полная это не значит, что файл уже загружен в S3, так что я бы хотел бы знать, если его можно быть загрузить файл на S3, а Im записи потока (внутри с помощью
(System.IO.MemoryStream writeStream = new System.IO.MemoryStream())
{
возможно ли это? Любое руководство о том, как это сделать?
Цените заранее.
К сожалению, ваш вопрос немного неясен (по крайней мере, для меня). Как ваш клиент демонстрирует прогресс в реальном времени? –
У WCF есть функция для этого. –
VAAA