首页 > 解决方案 > 如何使用java将图像上传到cloudinary中具有唯一public_id的特定文件夹?

问题描述

我已将我的项目配置为将图像上传到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生成的随机名称存储它的图像,这样如果我两次上传相同的图像,它不应该像上面的代码那样用第二个上传的图像覆盖第一个图像。

标签: javacloudinary

解决方案


默认情况下,当使用 Cloudinary 的 API 进行上传时,Cloudinary 会为上传的图片设置一个随机生成的公共 ID。

您可以将 use_filename 参数设置为 true 以将上传的图像的公共 ID 设置为原始文件的名称。但是,图像的公共 ID 会附加一个随机字符串以确保唯一性。更多信息: http: //support.cloudinary.com/entries/26977753-Why-does-the-public-ID-include-additional-characters-appended-to-the-original-file-name-


推荐阅读