为什么我会得到';无效签名';Cloudinary Java上的错误?

为什么我会得到';无效签名';Cloudinary Java上的错误?,java,cloudinary,Java,Cloudinary,我试图在JSF应用程序中实现Cloudinary上载。根据Cloudinary网站上的说明,我正在使用此依赖项: <dependency> <groupId>com.cloudinary</groupId> <artifactId>cloudinary-http44</artifactId> <version>1.19.0</version> </dependency> 任何

我试图在JSF应用程序中实现Cloudinary上载。根据Cloudinary网站上的说明,我正在使用此依赖项:

<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”,文件名));
}

我已经设法让它工作了。最后,我将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”);
}

多谢各位

我已经设法让它工作了。最后,我将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应用程序会有什么问题呢?