【问题标题】:Replace an image on Cloudinary替换 Cloudinary 上的图像
【发布时间】:2014-08-13 06:23:00
【问题描述】:

我正在尝试使用它的 public_id 替换 cloudinary 上的图像。 因此,我使用时间戳、public_id 和覆盖进行了签名。 我已将覆盖值设置为“真”。 下面我附上了正在传递的参数的屏幕截图。图片已成功上传,但版本标签不同,但未替换原始图片。

奇怪的是,更改后的图像在首次上传时成功替换了原始图像,但不适用于该图像的任何进一步上传。所以,上传成功,但上传的是不同的版本标签。

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');
                    });

【问题讨论】:

  • 为什么用[javascript]标记?或者更好:为什么[javascript] 标记的问题中没有代码?
  • @Cerbrus - 已更正。谢谢指出

标签: javascript angularjs cloudinary


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-04-11
    • 1970-01-01
    • 2021-09-21
    • 2021-03-20
    • 2020-03-02
    • 2015-02-21
    • 2017-07-12
    • 2017-12-02
    • 2014-11-25
    相关资源
    最近更新 更多