RequestError с aws-sdk-go для загрузки S3

Когда я пытаюсь загрузить mp3 файлы на S3, используя пакет ssmanager aws-sdk-go, я получаю эту ошибку.

2019/03/29 11:02:07 Error occurred while uploading 
/var/recordings/98a8d64ab5d01c9e00ba4ca1e292ce61.mp3 . Error : RequestError: send request failed
caused by: Put https://<bucketName>.s3.ap-southeast-1.amazonaws.com/98a8d64ab5d01c9e00ba4ca1e292ce61.mp3: EOF Current file size:  678071

Проблема в том, что это случается только иногда. Я добавил журналы, чтобы проверить, являются ли файлы пустыми или нет. Все вроде нормально.

Вот код, который я использую для обработки загрузки:

вход

fileReader := bytes.NewReader(buffer)
input := &s3manager.UploadInput{
    Bucket:      aws.String(awsBucketName),
    Key:         aws.String(filename),
    ContentType: aws.String(fileType),
    ACL:         aws.String("public-read"),
    Body:        fileReader,
}

Функция загрузки

func upload(svc s3iface.S3API, input *s3manager.UploadInput) (*s3manager.UploadOutput, error) {
    if input.Body == nil {
        return nil, fmt.Errorf("the body provided in input is nil")
    }

    uploader := s3manager.NewUploaderWithClient(svc, func(uploader *s3manager.Uploader) {
        uploader.PartSize = maxPartSize
        uploader.LeavePartsOnError = false
    })

    uploadOutput, err := uploader.Upload(input)
    if err != nil {
        return nil, err
    }
    return uploadOutput, nil
} 

Я не знаю, как отладить это. Я уверен, что это ошибка в AWS SDK. Я создал проблему здесь. Любое понимание этого полезно.

0 ответов

Другие вопросы по тегам