如何使用java将图像上传到cloudinary中具有唯一公共id的特定文件夹?

如何使用java将图像上传到cloudinary中具有唯一公共id的特定文件夹?,java,cloudinary,Java,Cloudinary,我已将我的项目配置为将图像上载到Cloudinary(图像的云存储)。在我的cloudinary帐户中,我创建了一个应用程序名为MyAppImages的文件夹。现在我的要求是,我通过MyApp应用程序上传的图像应该转到MyAppImages文件夹 使用我当前的代码,它将直接进入Samples文件夹 我的代码: { String fileName=multipartFile.getOriginalFilename(); File physicalFile=new File(

我已将我的项目配置为将图像上载到
Cloudinary
(图像的云存储)。在我的cloudinary帐户中,我创建了一个应用程序名为
MyAppImages
的文件夹。现在我的要求是,我通过
MyApp
应用程序上传的图像应该转到
MyAppImages
文件夹

使用我当前的代码,它将直接进入Samples文件夹

我的代码:

{
String fileName=multipartFile.getOriginalFilename();
            File physicalFile=new File(multipartFile.getOriginalFilename());
            FileOutputStream fout=new FileOutputStream(fileDir.getName()+"/"+physicalFile);
            fout.write(multipartFile.getBytes());
            fout.close();
            Cloudinary cloudinary = new Cloudinary(ObjectUtils.asMap(
                      "cloud_name", "my_cloud_name",
                      "api_key", "my_key",
                      "api_secret", "my_secret"));

            File toUpload = new File("rowFiles/"+fileName);
            Map params = ObjectUtils.asMap("public_id", "MyAppImages/"+fileName);
            Map uploadResult = cloudinary.uploader().upload(toUpload, params );
            System.out.println("==============>>"+uploadResult.get("url"));
            cloudinaryImgURL=uploadResult.get("url").toString();
}

使用上述代码,我可以将图像上传到特定目录
MyAppImages
,但名称与原始图像名称完全相同。我想通过
cloudinary
生成的随机名称来存储它的图像,这样,如果我上传两次相同的图像,它就不会像上面代码那样用第二个上传的图像覆盖第一个图像。

默认情况下,当使用cloudinary的API进行上传时,Cloudinary将为上传的图像设置随机生成的公共ID

您可以将use_filename参数设置为true,以将上载图像的公共ID设置为原始文件名。但是,将随机字符串附加到图像的公共ID以确保唯一性。有关更多信息:

若要保留上载文件的原始文件名,可以将“使用文件名”参数设置为true,Cloudinary将使用上载图像的文件名作为公共ID。 文件名被规范化,并附加随机字符以确保唯一性

要跳过添加确保唯一性的随机字符,您可以另外指定unique_filename参数,其值设置为false

资料来源:

有关上载API调用参数的更多信息: