为什么我会得到';无效签名';Cloudinary Java上的错误?
我试图在JSF应用程序中实现Cloudinary上载。根据Cloudinary网站上的说明,我正在使用此依赖项:为什么我会得到';无效签名';Cloudinary Java上的错误?,java,cloudinary,Java,Cloudinary,我试图在JSF应用程序中实现Cloudinary上载。根据Cloudinary网站上的说明,我正在使用此依赖项: <dependency> <groupId>com.cloudinary</groupId> <artifactId>cloudinary-http44</artifactId> <version>1.19.0</version> </dependency> 任何
<dependency>
<groupId>com.cloudinary</groupId>
<artifactId>cloudinary-http44</artifactId>
<version>1.19.0</version>
</dependency>
任何帮助都将不胜感激。谢谢。我建议您使用一个简单的服务器端java应用程序检查到Cloudinary的上传。大概是这样的:-
import com.cloudinary.*;
import com.cloudinary.utils.ObjectUtils;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class CloudinaryFacade {
private final static Map<Object, Object> CONFIG = new HashMap<>();
static {
CONFIG.put("cloud_name", "");
CONFIG.put("api_key", "");
CONFIG.put("api_secret", "");
}
public static void main(String[] args) throws IOException {
Cloudinary cloudinary = new Cloudinary(CONFIG);
Map result = cloudinary.uploader().upload("https://res.cloudinary.com/demo/image/upload/sample.jpg", ObjectUtils.emptyMap());
System.out.println(result);
}
}
导入com.cloudinary.*;
导入com.cloudinary.utils.ObjectUtils;
导入java.io.IOException;
导入java.util.HashMap;
导入java.util.Map;
公共类CloudinaryFacade{
private final static Map CONFIG=new HashMap();
静止的{
CONFIG.put(“cloud_name”和“”);
CONFIG.put(“api_键”,即“);
CONFIG.put(“api_secret”,”);
}
公共静态void main(字符串[]args)引发IOException{
Cloudinary Cloudinary=新的Cloudinary(配置);
映射结果=cloudinary.uploader().upload(“https://res.cloudinary.com/demo/image/upload/sample.jpg,ObjectUtils.emptyMap());
系统输出打印项次(结果);
}
}
一旦上面的例子起作用,你可以继续测试字节上传。这将确保你没有配置问题
这里有一个例子。我正在使用apache文件上载:
List<FileItem> formItems = upload.parseRequest(request);//List of file items
for (FileItem item : formItems) {
String fileName = item.getName();
//save on Cloudinary
Map imageUpload=cloudinary.uploader().upload(item.get(),
ObjectUtils.asMap("public_id",fileName));
}
List formItems=upload.parseRequest(请求)//文件项列表
用于(文件项:表单项){
字符串文件名=item.getName();
//节省云量
Map imageUpload=cloudinary.uploader().upload(item.get(),
asMap(“public_id”,文件名));
}
我建议您使用一个简单的服务器端java应用程序检查上传到Cloudinary的内容。大概是这样的:-
import com.cloudinary.*;
import com.cloudinary.utils.ObjectUtils;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class CloudinaryFacade {
private final static Map<Object, Object> CONFIG = new HashMap<>();
static {
CONFIG.put("cloud_name", "");
CONFIG.put("api_key", "");
CONFIG.put("api_secret", "");
}
public static void main(String[] args) throws IOException {
Cloudinary cloudinary = new Cloudinary(CONFIG);
Map result = cloudinary.uploader().upload("https://res.cloudinary.com/demo/image/upload/sample.jpg", ObjectUtils.emptyMap());
System.out.println(result);
}
}
导入com.cloudinary.*;
导入com.cloudinary.utils.ObjectUtils;
导入java.io.IOException;
导入java.util.HashMap;
导入java.util.Map;
公共类CloudinaryFacade{
private final static Map CONFIG=new HashMap();
静止的{
CONFIG.put(“cloud_name”和“”);
CONFIG.put(“api_键”,即“);
CONFIG.put(“api_secret”,”);
}
公共静态void main(字符串[]args)引发IOException{
Cloudinary Cloudinary=新的Cloudinary(配置);
映射结果=cloudinary.uploader().upload(“https://res.cloudinary.com/demo/image/upload/sample.jpg,ObjectUtils.emptyMap());
系统输出打印项次(结果);
}
}
一旦上面的例子起作用,你可以继续测试字节上传。这将确保你没有配置问题
这里有一个例子。我正在使用apache文件上载:
List<FileItem> formItems = upload.parseRequest(request);//List of file items
for (FileItem item : formItems) {
String fileName = item.getName();
//save on Cloudinary
Map imageUpload=cloudinary.uploader().upload(item.get(),
ObjectUtils.asMap("public_id",fileName));
}
List formItems=upload.parseRequest(请求)//文件项列表
用于(文件项:表单项){
字符串文件名=item.getName();
//节省云量
Map imageUpload=cloudinary.uploader().upload(item.get(),
asMap(“public_id”,文件名));
}
我已经设法让它工作了。最后,我将PrimeFacesuploadedFile
上传的文件内容复制到一个临时文件中,并将该文件发送到Cloudinary upload
托管bean类方法(上载处理程序):
Cloudinary上载方法:
public static String upload(File file) throws IOException {
Cloudinary cloudinary = new Cloudinary(CONFIG);
Map<Object, Object> parameters = new HashMap<>();
parameters.put("public_id", "Bookstore/Authors/Images/vejder");
Map result = cloudinary.uploader().upload(file, parameters);
return (String) result.get("url");
}
公共静态字符串上载(文件)引发IOException{
Cloudinary Cloudinary=新的Cloudinary(配置);
映射参数=新的HashMap();
参数put(“public_id”、“Bookstore/Authors/Images/vejder”);
Map result=cloudinary.uploader().upload(文件、参数);
返回(字符串)result.get(“url”);
}
多谢各位 我已经设法让它工作了。最后,我将PrimeFaces
uploadedFile
上传的文件内容复制到一个临时文件中,并将该文件发送到Cloudinary upload
托管bean类方法(上载处理程序):
Cloudinary上载方法:
public static String upload(File file) throws IOException {
Cloudinary cloudinary = new Cloudinary(CONFIG);
Map<Object, Object> parameters = new HashMap<>();
parameters.put("public_id", "Bookstore/Authors/Images/vejder");
Map result = cloudinary.uploader().upload(file, parameters);
return (String) result.get("url");
}
公共静态字符串上载(文件)引发IOException{
Cloudinary Cloudinary=新的Cloudinary(配置);
映射参数=新的HashMap();
参数put(“public_id”、“Bookstore/Authors/Images/vejder”);
Map result=cloudinary.uploader().upload(文件、参数);
返回(字符串)result.get(“url”);
}
多谢各位 所以,如果你在单元测试中这样做是可行的?我不确定我是否理解你的意思。我没有写任何测试。:)那就请吧。它有助于查看它是否与JSF相关。。。(99.9%的人肯定不是)。是的,也许你是对的。我添加了jsf标记,因为我正在处理jsf应用程序,但这与此无关。我将删除JSF标签。所以,如果您在unittest中这样做,它会工作吗?我不确定我是否理解您的意思。我没有写任何测试。:)那就请吧。它有助于查看它是否与JSF相关。。。(99.9%的人肯定不是)。是的,也许你是对的。我添加了jsf标记,因为我正在处理jsf应用程序,但这与此无关。我将删除JSF标记。它不认为这是配置错误,因为我在输入错误的api密钥时遇到了另一个错误。但我设法上传了你的例子。我也不认为它与字节数组上传有关,因为我得到了一些时间戳错误,当我尝试从磁盘上的路径上传文件时,我得到了相同的时间戳错误。那个么web应用程序会有什么问题呢?它不认为这是配置错误,因为当我输入错误的api密钥时,我遇到了另一个错误。但我设法上传了你的例子。我也不认为它与字节数组上传有关,因为我得到了一些时间戳错误,当我尝试从磁盘上的路径上传文件时,我得到了相同的时间戳错误。那么web应用程序会有什么问题呢?