Das AWS SDK for Go übernimmt die Speicherverwaltung beim Hochladen großer Dateien mithilfe einer Kombination von Techniken:
1. Streaming: Das SDK verwendet Streaming, um große Dateien hochzuladen, was bedeutet, dass es die Datei in kleinere Teile aufteilt und jeden Teil separat hochlädt. Dieser Ansatz hilft, die Speichernutzung zu reduzieren, indem jeweils nur ein kleiner Teil der Datei in den Speicher geladen wird[4].
2. Mehrteilige Uploads: Das SDK unterstützt auch mehrteilige Uploads, die es Ihnen ermöglichen, große Dateien hochzuladen, indem Sie sie in kleinere Teile aufteilen und jeden Teil separat hochladen. Dieser Ansatz hilft, die Speichernutzung zu verwalten, indem jeweils nur ein kleiner Teil der Datei in den Speicher geladen wird[3].
3. Chunking: Das SDK verwendet Chunking, um die Speichernutzung beim Hochladen großer Dateien zu verwalten. Es unterteilt die Datei in kleinere Teile und lädt jeden Teil separat hoch. Dieser Ansatz hilft, die Speichernutzung zu reduzieren, indem jeweils nur ein kleiner Teil der Datei in den Speicher geladen wird[3].
4. Parallelität: Das SDK unterstützt Parallelität, was bedeutet, dass es mehrere Teile der Datei gleichzeitig hochladen kann. Dieser Ansatz trägt dazu bei, die Upload-Leistung zu verbessern und die Speichernutzung zu reduzieren, indem die Last auf mehrere Goroutinen verteilt wird[1].
5. Pufferung: Das SDK verwendet Pufferung, um die Speichernutzung beim Hochladen großer Dateien zu verwalten. Es puffert die Dateidaten im Speicher und lädt sie dann in Blöcken hoch. Dieser Ansatz hilft, die Speichernutzung zu reduzieren, indem jeweils nur ein kleiner Teil der Datei in den Speicher geladen wird[1].
Durch den Einsatz dieser Techniken kann das AWS SDK for Go große Datei-Uploads effizient verarbeiten und gleichzeitig die Speichernutzung effektiv verwalten.
Zitate:[1] https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-basic-bucket-operations.html
[2] https://www.youtube.com/watch?v=R6W1ay4jYKk
[3] https://github.com/aws/aws-sdk-go/issues/1104
[4] https://stackoverflow.com/questions/34177137/stream-file-upload-to-aws-s3-using-go
[5] https://www.youtube.com/watch?v=HkF3_GLVKEg