首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cloudinary Error:{“error”:{“message”:“缺少所需参数-时间戳”}}

Cloudinary Error:{“error”:{“message”:“缺少所需参数-时间戳”}}
EN

Stack Overflow用户
提问于 2021-12-04 02:24:07
回答 1查看 346关注 0票数 0

我正在尝试使用Cloudinary的.downloadMulti(String tag, Map options)生成一个URL,作为一个带有相同标签的zip下载多个图像。我生成的URL看起来很好,但是当我转到URL时,我会遇到{“error”:{“message”:“缺少所需的参数-时间戳”}}。

我已经做了一些研究,我发现我需要在请求上签名,但这并不是说我错过了--只是时间戳。我相信请求已经被签署了,只是需要一个适当的时间戳。我认为它需要在构造函数中,但是当我调用Util.timestamp()时,它不被识别为引用。

我的Cloudinary初始化器:

代码语言:javascript
运行
复制
private final Cloudinary cloudinary = new Cloudinary(ObjectUtils.asMap(
            "cloud_name", "dxoa7bbix",
            "api_key", "161649288458746",
            "api_secret", "..."));

我的上传方法:

代码语言:javascript
运行
复制
public Photo uploadOrderImage(String imageURL, String publicId, Order order, String photoType) throws IOException {
        Map result = cloudinary.uploader().upload(new File(imageURL), ObjectUtils.asMap(
                "public_id", publicId,
                 "tags", order.getId().toString()));
        Photo sellOrderPhoto = new Photo(
                result.get("secure_url").toString(),
                photoType,
                order
        );
        return photoRepository.save(sellOrderPhoto);
    }

这是我的下载方法:

代码语言:javascript
运行
复制
public String downloadPhotos(String tag) throws IOException {
        return cloudinary.downloadMulti(tag, ObjectUtils.asMap(
                "tags", tag
        ));
    }

我的下载方法返回的一个示例URL: Generated:key=161649288458746&tag=137×tamp=1638583257

总的来说,我认为问题在于缺乏时间戳。如果你有任何想法,那就太好了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-04 10:17:04

造成此错误的原因是,预期参数将被称为timestamp,但根据您共享的URL,它实际上是×tamp

如果您想要生成一个包含共享特定标记的资产的ZIP文件的URL,那么您将需要使用归档方法而不是提供不同功能的多点

如果您替换了以下代码:

代码语言:javascript
运行
复制
    return cloudinary.downloadMulti(tag, ObjectUtils.asMap(
        "tags", tag
    ));

通过以下方式:

代码语言:javascript
运行
复制
    return cloudinary.downloadZip(ObjectUtils.asMap(
        "tags", tag, 
        "resource_type", "image")
    );

然后,这将生成一个URL并将其返回到一个ZIP文件,当访问该URL时将创建该文件,并包含来自云的包含您指定的tag的图像。

当使用任何内置方法时,Cloudinary将自动处理签名/时间戳生成,因此,如果使用内置方法,则不需要对SDK代码进行任何更改或自己计算签名。只有当您不打算使用任何SDK,而是使用您自己的自定义代码与Cloudinary API集成时,才需要生成签名--比如您使用的是Cloudinary SDK还不存在的语言。在这种情况下,如果要执行经过身份验证的API调用,则需要自己执行生成身份验证签名

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70222567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档