Ich möchte eine große Datei (mehrere GB) in einem AWS S3-Bucket aus einer ASP.NET Core Web API erstellen. Die Datei ist so groß, dass ich die Stream
nicht in den Arbeitsspeicher laden möchte, bevor ich sie auf AWS S3 hochlade.Streamen Sie eine Datei mit mehreren GB von ASP.NET Core Web API nach AWS S3
Mit PutObjectAsync()
Ich bin gezwungen, vorab füllen die Stream
bevor sie auf die Weitergabe an die AWS SDK, unten dargestellt:
var putObjectRequest = new PutObjectRequest
{
BucketName = "my-s3-bucket",
Key = "my-file-name.txt",
InputStream = stream
};
var putObjectResponse = await amazonS3Client.PutObjectAsync(putObjectRequest);
Mein ideales Muster das AWS SDK würde bedeuten, eine StreamWriter
(von möglichen Rückkehr) Ich konnte Write()
zu vielen Malen und dann Finalise()
wenn ich fertig bin.
Zwei Fragen bezüglich meiner Herausforderung:
- Bin ich falsch informiert über die
Stream
vorPutObjectAsync()
dem Aufruf auf vorab füllen zu müssen? - Wie soll ich meine große (Multi-GB-) Datei hochladen?
Gründe für den Downvote? – VMAtm
Gibt es einen Link zwischen ** uploadResponses ** und ** completeRequest ** – Anjali
ist es Beispielcode aus der Dokumentation. Soweit Sie sehen können, befindet sich der Link in 'initResponse.UploadId', Sie starten also den Upload, erhalten eine ID, laden alle Dateien hoch und beenden den Upload. – VMAtm