我正在尝试使用它的public_id替换cloudinary上的图像。 所以,我使用timestamp,public_id& amp;覆盖。 我已将覆盖值设置为“true”。 下面我附上了传递参数的截图。图像已成功上传,但版本标签不同,但原始图片未被替换。
奇怪的是,更改后的图像在首次上传时成功替换了原始图像,但在该图像上的任何进一步上传时均无效。因此,上传成功,但使用不同的版本标签上传。
http://cloudinary.com/documentation/upload_images#renaming_images 我使用了上面链接中给出的覆盖选项来替换原始图像。
我等了很长时间(至少半小时),认为改变可能需要时间来反映,但它仍然是一样的。
对此处可能存在的错误有任何见解?
var newForm = new FormData();
newForm.append('timestamp',ts);
newForm.append('api_key', $rootScope.CLOUDINARY_CONFIG.api_key);
newForm.append('signature', signature);
newForm.append('public_id', scope.model.public_id);
newForm.append('overwrite', true);
newForm.append('file', canvasImage);
$http.post($rootScope.CLOUDINARY_CONFIG.upload_url, newForm, {
transformRequest: angular.identity,
file : canvasImage,
headers: {'X-Requested-With': 'XMLHttpRequest','Content-Type': undefined}
})
.success(function(data){
// success
})
.error(function(err){
// log error
console.log('fail');
});
答案 0 :(得分:1)
如果您提到使用相同的第一个上传图片而不是更新后的图片,那么您似乎正在获得该图片的CDN
缓存版本。您应该在URL中包含版本组件(上传响应中包含正确的版本值,或者使用已包含版本组件的上载调用返回的URL),或者您可以在上传时将invalidate
参数设置为true
以使图像无效。请注意,失效可能需要长达一个小时才能完全传播CDN
。这里还有一些information