Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kaip AWS SDK for Go valdo atminties valdymą įkeliant didelius failus


Kaip AWS SDK for Go valdo atminties valdymą įkeliant didelius failus


AWS SDK for Go tvarko atmintį įkeliant didelius failus naudodamas kelių metodų derinį:

1. Srautas: SDK naudoja srautinį perdavimą dideliems failams įkelti, o tai reiškia, kad failas suskaidomas į mažesnius gabalus ir įkeliamas atskirai. Šis metodas padeda sumažinti atminties naudojimą, nes vienu metu į atmintį įkeliama tik nedidelė failo dalis[4].

2. Kelių dalių įkėlimas: SDK taip pat palaiko kelių dalių įkėlimą, leidžiantį įkelti didelius failus padalijus juos į mažesnes dalis ir įkeliant kiekvieną dalį atskirai. Šis metodas padeda valdyti atminties naudojimą, kai vienu metu į atmintį įkeliama tik nedidelė failo dalis[3].

3. Padalijimas: SDK naudoja skaidymą, kad valdytų atminties naudojimą įkeliant didelius failus. Ji padalija failą į mažesnius gabalus ir įkelia kiekvieną dalį atskirai. Šis metodas padeda sumažinti atminties naudojimą, nes vienu metu į atmintį įkeliama tik nedidelė failo dalis[3].

4. Lygiagretumas: SDK palaiko lygiagretumą, o tai reiškia, kad jis vienu metu gali įkelti kelias failo dalis. Šis metodas padeda pagerinti įkėlimo našumą ir sumažinti atminties naudojimą paskirstant apkrovą kelioms gorutinoms[1].

5. Buferis: SDK naudoja buferį, kad tvarkytų atminties naudojimą įkeliant didelius failus. Jis saugo failo duomenis atmintyje ir įkelia juos dalimis. Šis metodas padeda sumažinti atminties naudojimą, nes vienu metu į atmintį įkeliama tik nedidelė failo dalis[1].

Naudodamas šiuos metodus, AWS SDK for Go gali efektyviai tvarkyti didelių failų įkėlimą ir efektyviai valdyti atminties naudojimą.

Citatos:
[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