Я пытаюсь загрузить только изображения в мое ведро s3. Я использую предварительно назначенный URL, вот мой код jquery и nodejs. Хотя. Я указываю свой тип контента как изображение, но он может принимать любой тип файла. Как я могу заставить мое ведро принимать только изображения
Jquery:
const profilePic = $("#profile-image").attr('src')
var data = new FormData();
const getUrl = await getSignedUrl();
const keys = getUrl["fields"];
$.each(keys, function (key, value) {
data.append(key, value);
});
data.set('Content-type', 'image/*');
data.append("file", profilePic);
try {
const result = await fetch(getUrl["url"], {
method: "POST",
mode: "cors",
headers: {
'Access-Control-Allow-Origin': '*',
},
body: data
})
await $("#form").submit()
console.log(await result.text(), " result ")
} catch (err) {
console.log(err," err ")
}
и вот мой node js код
function postObjectSignedUrl(req) {
const key = `${req + "/" + uuid.v4()}`;
return new Promise(function (resolve, reject) {
const params = {
Bucket: 'bucket',
Expires: 60 * 60, // in seconds,
// 'Content-Type': 'image/*',
Fields: {
key: key,
},
Conditions: [
['content-length-range', 0, 1500000],
["starts-with", "$Content-Type", "image/"],
]
}
s3.createPresignedPost(params, (err, data) => {
if (err) {
reject(err)
} else {
resolve(data);
}
})
})
}