Я пытаюсь загрузить файл с S3 и загрузить этот файл в другое ведро в S3. Копировать API не будет работать здесь, потому что мне сказали не использовать его.
Получение объекта из S3 имеет response.Body
, который io.ReadCloser
и для загрузки этого файла, полезная нагрузка принимает Body
, что io.ReadSeeker
.
Единственный способ понять это - сохранить response.Body
в файл, а затем передать этот файл как io.ReadSeeker
. Для этого потребуется сначала записать весь файл на диск, а затем прочитать весь файл с диска, который звучит довольно неправильно.
Что я хотел бы сделать:
resp, _ := conn.GetObject(&s3.GetObjectInput{Key: "bla"})
conn.PutObject(&s3.PutObjectInput{Body: resp.Body}) // resp.Body is an io.ReadCloser and the field type expects an io.ReadSeeker
Вопрос: как я могу перейти от io.ReadCloser
к io.ReadSeeker
наиболее эффективным способом?