Ускорение пишет в Amazon S3 - PullRequest
       5

Ускорение пишет в Amazon S3

3 голосов
/ 24 октября 2011

Я пытаюсь загрузить изображение в Amazon S3 с помощью C #:

PutObjectRequest titledRequest = null;

S3Response response = null;

using (var memoryStream = new MemoryStream())
{

    image.Save(memoryStream, ImageFormat.Png);

    titledRequest = new PutObjectRequest();

    titledRequest.WithBucketName(bucketName)
                 .WithKey(keyName)
                 .WithCannedACL(S3CannedACL.PublicRead)
                 .WithInputStream(memoryStream);

    response = client.PutObject(titledRequest);
}

Как видите, я не сохраняю файл изображения локально, а скорее направляю его на S3. Однако по некоторым причинам этот процесс занимает около 50 секунд для файла размером 50 КБ!

Нет ничего плохого в том, что моя скорость загрузки превышает 1 Мбит / с.

Мне интересно, быстрее ли сначала сохранить файл и загрузить?

Что-нибудь, что я должен рассмотреть, чтобы ускорить процесс загрузки? Опять же, никаких проблем на стороне широкополосного доступа!

1 Ответ

5 голосов
/ 24 октября 2011

Amazon docs скажем:

При загрузке из входного потока всегда указывайте метаданные с установленным размером контента.В противном случае содержимое входного потока необходимо буферизировать в памяти перед отправкой в ​​Amazon S3.Это может привести к очень негативным последствиям для производительности.

Трудно поверить, что это может быть вашей проблемой, но рекомендуется придерживаться наилучшей практики.

Другие вопросы, которые следует учитывать -

  • Вам нужно указать другие ObjectMetadata, чтобы сообщить S3, как обрабатывать ваше изображение?
  • существует ли сегмент или создание является частью первой операции отправки объекта?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...