Существует ли API для чтения aws s3 файла в Go, я только нахожу API для загрузки файла на локальный компьютер, а затем считываю локальный загруженный файл, но мне нужно прочитать файл в потоке (например, чтение локального файла).
Я хочу иметь возможность читать файл в режиме реального времени, например, читать 100 байт, что-то делать для 100 байтов, и прочитайте последний файл. Я нахожу только API Go aws s3 для загрузки всего файла на локальный компьютер и обработчик загруженного локального файла.
Мой текущий тестовый код - это
func main() {
bucket := "private bucket"
item := "private item"
file, err := os.Create("local path")
if err != nil {
exitErrorf("Unable to open file %q, %v", item, err)
}
defer file.Close()
sess, _ := session.NewSession(&aws.Config{
Region: aws.String(" ")},
)
downloader := s3manager.NewDownloader(sess)
numBytes, err := downloader.Download(file,
&s3.GetObjectInput{
Bucket: aws.String(bucket),
Key: aws.String(item),
})
// Handle the downloaded file
scanner := bufio.NewScanner(file)
for scanner.Scan() {
// Do something
}
}
Я скачаю файл с s3 на локальный компьютер, а затем открою загруженный файл и обработаю каждый байт.
Интересно, могу ли я непосредственно прочитать каждую строку файла (или прочитать каждые 100 байтов файла) из s3