【发布时间】:2022-01-10 07:25:00
【问题描述】:
我正在尝试使用 Cloudinary 的 .downloadMulti(String tag, Map options) 生成一个 URL,以将多个图像下载为具有相同标签的 zip。我生成的 URL 似乎很好,但是当我转到 URL 时,我遇到了 {"error":{"message":"Missing required parameter - timestamp"}}。
我进行了一些研究,发现我需要签署请求,但这并不是说我错过了 - 只是时间戳。我相信请求已经被签署,只需要一个适当的时间戳。我相信它需要在构造函数中,但是当我调用 Util.timestamp() 时,它不会被识别为参考。
我的 Cloudinary 初始化器:
private final Cloudinary cloudinary = new Cloudinary(ObjectUtils.asMap(
"cloud_name", "dxoa7bbix",
"api_key", "161649288458746",
"api_secret", "..."));
我的上传方式:
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);
}
这是我的下载方法:
public String downloadPhotos(String tag) throws IOException {
return cloudinary.downloadMulti(tag, ObjectUtils.asMap(
"tags", tag
));
}
我的下载方法返回的示例 URL:生成的 URL:https://api.cloudinary.com/v1_1/dxoa7bbix/image/multi?mode=download&async=false&signature=5f5da549fc78ea3fd50f034cdc76e2cce3089d48&api_key=161649288458746&tag=137×tamp=1638583257。
总的来说,我认为问题在于缺少时间戳。如果您有任何想法,那就太好了!
【问题讨论】:
标签: spring spring-boot image file cloudinary