替换Cloudinary上的图像

时间:2014-06-23 09:03:16

标签: javascript angularjs cloudinary

我正在尝试使用它的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');
                    });

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您提到使用相同的第一个上传图片而不是更新后的图片,那么您似乎正在获得该图片的CDN缓存版本。您应该在URL中包含版本组件(上传响应中包含正确的版本值,或者使用已包含版本组件的上载调用返回的URL),或者您可以在上传时将invalidate参数设置为true以使图像无效。请注意,失效可能需要长达一个小时才能完全传播CDN。这里还有一些information