Sada AWS SDK for Go se stará o správu paměti během nahrávání velkých souborů pomocí kombinace technik:
1. Streamování: Sada SDK používá k nahrávání velkých souborů streamování, což znamená, že soubor rozdělí na menší části a nahraje každý zvlášť. Tento přístup pomáhá snížit využití paměti tím, že do paměti načítá pouze malou část souboru najednou[4].
2. Vícedílné nahrávání: SDK také podporuje vícedílné nahrávání, které umožňuje nahrávat velké soubory tak, že je rozdělíte na menší části a nahrajete každou část zvlášť. Tento přístup pomáhá řídit využití paměti tím, že do paměti načítá pouze malou část souboru najednou[3].
3. Chunking: SDK používá chunking ke správě využití paměti během nahrávání velkých souborů. Rozdělí soubor na menší části a nahraje každou část samostatně. Tento přístup pomáhá snížit využití paměti tím, že do paměti načítá pouze malou část souboru najednou[3].
4. Concurrency: SDK podporuje souběžnost, což znamená, že může nahrávat více částí souboru současně. Tento přístup pomáhá zlepšit výkon nahrávání a snížit využití paměti rozložením zátěže mezi více rutin[1].
5. Ukládání do vyrovnávací paměti: Sada SDK používá ukládání do vyrovnávací paměti ke správě využití paměti během nahrávání velkých souborů. Ukládá data souboru do paměti a poté je odesílá po částech. Tento přístup pomáhá snížit využití paměti tím, že do paměti načítá pouze malou část souboru najednou[1].
Pomocí těchto technik dokáže AWS SDK for Go efektivně zpracovávat nahrávání velkých souborů a zároveň efektivně řídit využití paměti.
Citace:[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