Glede na rezultate iskanja se zdi, da je uporaba bralnika samo za naprej, kot je bralnik Go `tar`, lahko izziv pri nalaganju velikih datotek v Amazon S3 z uporabo AWS SDK for Go.
Ključne točke so:
1. Težave z upravljanjem pomnilnika: AWS SDK for Go's S3 uploader dodeli in zapolni medpomnilnike kosov za celotno datoteko, preden jih naloži. To lahko povzroči, da procesu zmanjka pomnilnika pri nalaganju velikih datotek z bralnikom, ki ne podpira funkcij `Seek` ali `ReadAt`, kot je bralnik Go `tar`.
2. Intelligent Chunking: Težava GitHub #1104 nakazuje, da bi lahko izboljšali SDK za uporabo bolj inteligentnega razdejanja, ko ukvarjanje z bralniki, ki ne podpirajo `Seek` in `ReadAt`. To bi pripomoglo k boljšemu upravljanju porabe pomnilnika med nalaganjem velikih datotek.
3. Pretakanje in večdelno nalaganje: AWS SDK za Go podpira pretakanje in večdelno nalaganje, kar lahko pomaga upravljati porabo pomnilnika med nalaganjem velikih datotek. Vendar te funkcije morda ne bodo delovale tako dobro z bralnikom samo za naprej.
4. Alternativne rešitve: rezultati iskanja predlagajo uporabo Minio SDK ali Google CDK, ki imata morda boljšo podporo za pretakanje velikih datotek v S3. Poleg tega projekt aws-s3-reader-seeker zagotavlja izvedbo bralnika po meri, ki lahko več obravnava velike predmete S3 učinkovito.
Če povzamemo, čeprav je mogoče uporabiti bralnik samo za naprej, kot je bralnik Go `tar` za nalaganje velikih datotek v S3 z uporabo AWS SDK za Go, to morda ni najbolj učinkovit ali pomnilniku prijazen pristop. Razmislek o alternativnih rešitvah ali uporabi funkcij SDK za pretakanje in večdelno nalaganje je morda boljša možnost v takih primerih.
Citati:[1] https://github.com/aws/aws-sdk-go/issues/1104
[2] https://github.com/nikolaydubina/aws-s3-reader/blob/master/aws_s3_reader_seeker.go
[3] https://www.reddit.com/r/golang/comments/131bq42/need_to_stream_large_files_to_s3_using_go/
[4] https://www.linkedin.com/pulse/golang-uploading-files-aws-s3-bucket-using-pre-signed-tiago-melo
[5] https://pkg.go.dev/github.com/SnellerInc/sneller/aws/s3