Я настраиваю AWS S3 bucket для загрузки аудиофайлов с использованием MongoDB Stitch (вот документы mon go s3 документы . После следования инструкциям и аутентификации моего пользователя я продолжаю получать эта ошибка при попытке загрузить выбранный файл: изображение ошибки из консоли
В строке 119, откуда исходит ошибка, я просто улавливаю ошибку после запуска AWS build:
const aws = stitchClient.getServiceClient(AwsServiceClient.factory, "AWS");
convertAudioToBSONBinaryObject(file).then((result) => {
const audiofile = mongodb.db("data").collection("audiofile");
//now we need an instance of AWS service client
const key = `${stitchClient.auth.user.id}-${file.name}`;
// const key = `${stitchClient.auth.user.id}-${file.name}`;
const bucket = "myBucketName";
const url =
"http://" + bucket + ".s3.amazonaws.com/" + encodeURIComponent(key);
const args = {
ACL: "public-read",
Bucket: bucket,
ContentType: file.type,
Key: key,
Body: result,
// aws_service: "s3",
};
// building the request
const request = new AwsRequest.Builder()
.withService("s3")
.withAction("PutObject")
.withRegion("us-east-1")
.withArgs(args);
aws
.execute(request.build)
.then((result) => {
console.log(result);
console.log(url);
return audiofile.insertOne({
owner_id: stitchClient.auth.user.id,
url,
file: {
name: file.name,
type: file.type,
},
Etag: result.Etag,
ts: new Date(),
});
})
.then((result) => {
console.log("last result", result);
})
.catch((err) => {
console.log(err);
});
});
Мое правило стежков для s3 выглядит следующим образом: Правило стежков для AWS s3
Так что мне кажется, что все настроено так, как оно предназначено к, но ошибка говорит мне, что я не передаю все необходимые аргументы. Буду очень признателен за любые мысли о том, как исправить эту ошибку.
PS Если я изменю "AWS" на "AWS_S3" в этой строке: const aws = stitchClient.getServiceClient(AwsServiceClient.factory, "AWS");
Сообщение об ошибке меняется на следующее:
StitchServiceError {message: "служба не найдена: 'AWS_S3'", name: "StitchServiceError", errorCode: 18, errorCodeName: "ServiceNotFound",
А лог в стежке показывает это для информации для обеих ошибок: Журналы стежков