【发布时间】:2020-04-11 16:58:03
【问题描述】:
文档非常令人沮丧。
我正在使用上传小部件来尝试允许用户为他们的个人资料上传多张图片。我不能使用未签名的上传,因为可能会被滥用。
我宁愿通过上传小部件而不是通过服务器上传文件,因为它似乎应该如此简单
我已经拼凑了我认为应该起作用的东西,但它仍然在说:Upload preset must be whitelisted for unsigned uploads
服务器:
// grab a current UNIX timestamp
const millisecondsToSeconds = 1000;
const timestamp = Math.round(Date.now() / millisecondsToSeconds);
// generate the signature using the current timestmap and any other desired Cloudinary params
const signature = cloudinaryV2.utils.api_sign_request({ timestamp }, CLOUDINARY_SECRET_KEY);
// craft a signature payload to send to the client (timestamp and signature required)
return signature;
也试过
return {
signature,
timestamp,
};
也试过
const signature = cloudinaryV2.utils.api_sign_request(
data.params_to_sign,
CLOUDINARY_SECRET_KEY,
);
客户:
const generateSignature = async (callback: Function, params_to_sign: object): Promise<void> => {
try {
const signature = await generateSignatureCF({ slug: 'xxxx' });
// also tried { slug: 'xxxx', params_to_sign }
callback(signature);
} catch (err) {
console.log(err);
}
};
cloudinary.openUploadWidget(
{
cloudName: 'xxx',
uploadPreset: 'xxxx',
sources: ['local', 'url', 'facebook', 'dropbox', 'google_photos'],
folder: 'xxxx',
apiKey: ENV.CLOUDINARY_PUBLIC_KEY,
uploadSignature: generateSignature,
},
function(error, result) {
console.log(error);
},
);
【问题讨论】:
标签: javascript node.js upload cloudinary