Súprava AWS SDK for Go zvláda správu pamäte počas nahrávania veľkých súborov pomocou kombinácie techník:
1. Streamovanie: Súprava SDK používa streamovanie na nahrávanie veľkých súborov, čo znamená, že súbor rozdelí na menšie časti a každý z nich odovzdá samostatne. Tento prístup pomáha znižovať využitie pamäte tým, že do pamäte načítava iba malú časť súboru naraz[4].
2. Nahrávanie z viacerých častí: SDK podporuje aj nahrávanie z viacerých častí, ktoré vám umožňuje nahrávať veľké súbory tak, že ich rozdelíte na menšie časti a každú časť nahráte samostatne. Tento prístup pomáha spravovať využitie pamäte tým, že načítava do pamäte naraz iba malú časť súboru[3].
3. Chunking: Súprava SDK používa chunking na správu využitia pamäte počas nahrávania veľkých súborov. Rozdelí súbor na menšie časti a každý z nich odošle samostatne. Tento prístup pomáha znižovať využitie pamäte tým, že naraz načítava do pamäte iba malú časť súboru[3].
4. Súbežnosť: Súprava SDK podporuje súbežnosť, čo znamená, že dokáže nahrať viacero častí súboru súčasne. Tento prístup pomáha zlepšiť výkon nahrávania a znížiť využitie pamäte rozložením záťaže medzi viaceré rutiny[1].
5. Ukladanie do vyrovnávacej pamäte: Súprava SDK používa ukladanie do vyrovnávacej pamäte na správu využitia pamäte počas nahrávania veľkých súborov. Ukladá dáta súboru do pamäte a potom ich odosiela po častiach. Tento prístup pomáha znižovať využitie pamäte tým, že naraz načítava do pamäte iba malú časť súboru[1].
Pomocou týchto techník dokáže AWS SDK for Go efektívne spracovať nahrávanie veľkých súborov a zároveň efektívne riadiť využitie pamäte.
Citácie:[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