AWS .NET SDK Multipart Загрузка файлов из Http - PullRequest
1 голос
/ 20 декабря 2011

Я реализовал обработчик .ashx, который получает фрагменты загруженной части файла от клиента.Ранее я сначала сохранял файлы во временной папке, а затем загружал их в AWS.Поскольку файлы стали довольно большими, я хотел бы пропустить часть временной папки и загрузить их непосредственно в AWS с помощью запросов MultiPart.

Пока все выглядит нормально, но я не могу найти перегрузку, котораяпринимает либо HttpPostedFile, либо Stream для загрузки.

I что-то вроде следующего возможно?

        // Create request to upload a part.
        UploadPartRequest uploadRequest = new UploadPartRequest()
            .WithBucketName(myBucket)
            .WithKey(myKey)
            .WithUploadId(myUploadId)                
            .WithPartNumber(partNumber)
            .WithInputStream(inputStream); 

Ответы [ 3 ]

2 голосов
/ 27 ноября 2012
UploadPartRequest uploadRequest = new UploadPartRequest()
        .WithBucketName(myBucket)
        .WithKey(myKey)
        .WithUploadId(myUploadId)                
        .WithPartNumber(partNumber)
        .WithInputStream(stream) as UploadPartRequest;

Это также возможно.

1 голос
/ 22 декабря 2011

WithInputStream вернет запрос s3 вместо UploadPartRequest, поэтому просто приведите тип возврата к UploadPartRequest

// Create request to upload a part.
        UploadPartRequest uploadRequest = new UploadPartRequest()
            .WithBucketName(myBucket)
            .WithKey(myKey)
            .WithUploadId(myUploadId)                
            .WithPartNumber(partNumber);

uploadRequest = (UploadPartRequest)uploadRequest.WithInputStream(ftiObject.sourceStream); 

, это работает для меня

0 голосов
/ 20 декабря 2011

Простой: просто установите входной поток через свойство:

            // Create request to upload a part.
            UploadPartRequest uploadRequest = new UploadPartRequest()
                .WithBucketName(myBucket)
                .WithKey(myKey)
                .WithUploadId(UploadId)
                .WithPartNumber(PartNumber)
                .WithPartSize(inputStream.Length)
                .WithFilePosition(FilePosition);

            uploadRequest.InputStream = inputStream;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...