httprequest - 使用未签名上传云时必须指定上传预设
问题描述
我正在尝试使用 cloudinary API_URL 直接从我的前端(Angular 8)上传文件,但仍然收到相同的错误请求(400)和相同的错误“上传预设必须被列入未签名上传的白名单”,即使我尝试了不同的解决方案,如在 FormData 中提供 preset_name 并在我的 cloudinary 设置中将预设设置为未签名,但仍然无法正常工作。有什么解决办法吗?
我的上传代码:
const images = new FormData();
images.append('images', file);
images.append('upload_preset', [presetName]);
this.progressBar = true
const req = new HttpRequest('POST', 'https://api.cloudinary.com/v1_1/[cloudName]/image/upload', images,
{
reportProgress: true,
});
this.http.request(req).subscribe(event => {
if (event.type === HttpEventType.UploadProgress) {
const percentDone = Math.round(100 * event.loaded / event.total);
console.log(`File is ${percentDone}% uploaded.`);
} else if (event instanceof HttpResponse) {
console.log('File is completely uploaded!');
}
});
解决方案
Upload preset must be whitelisted for unsigned uploads
错误意味着您正在使用的预设被标记为签名上传。由于您没有执行经过身份验证的 API 调用,即使用签名,因此上传预设必须设置为未签名。如果您还没有,请转到您帐户中的“设置”->“上传”选项卡,并确认您尝试使用的预设的“签名模式”设置为“未签名”。
此外,我看到您正在传递一个名为“图像”的参数。这不是上传API 的有效参数。请将其更新为“文件”。
const data = new FormData();
data.append("file", file);
data.append("upload_preset", "default-preset");
推荐阅读
- javascript - 尝试使用 formdata 将数据推送到 json 对象时出现 Javascript 错误
- junit - 关于如何在 Java8 中使用 Mockito forEach 进行 junit 测试的问题
- r - 将函数应用于R中的列表的问题
- oracle - 如何从oracle中的vararray中删除元素?
- r - R:从数据库中读取表的更快方法是什么?
- javascript - 如果使用服务工作者从缓存中显示页面,如何将类“离线”添加到正文
- java - 将 Button OnClick 与 Fragment 中 RecyclerView 内的行 OnClick 分开
- python - 如何使用合并的 bin 计算直方图?
- python - 有层次嵌套的 FOR 循环的替代品吗?
- c++ - /usr/bin/ld 找不到
仅在编译期间