指定“文件夹”选项不会将图像上传到 Cloudinary 中的文件夹

问题描述 投票:0回答:4

我在上传到正确的文件夹时遇到一些困难。如果我指定:

cloudinary.uploader.upload(filePath, {
  folder: 'test-directory'
});

我正在遵循节点集成指南:http://cloudinary.com/documentation/image_upload_api_reference#upload

我提前创建了“测试目录”。图片上传成功,但总是进入我的媒体库的根目录。

我在帐户设置中启用了“自动创建文件夹”。

这是来自 Cloudinary 的示例上传响应:

{
  public_id: 'we1yjvlpxc1qtuf1oaqe',
  version: 1503236713,
  signature: '37edbc2b19ea72b75298acce8075f9e8ddb12d09',
  width: 675,
  height: 37,
  format: 'jpg',
  resource_type: 'image',
  created_at: '2017-08-20T13:45:13Z',
  tags: [],
  bytes: 602,
  type: 'upload',
  etag: 'b5522ae652340881b213c46c035d0aed',
  url: 'http://res.cloudinary.com/alsoicode/image/upload/v1503236713/we1yjvlpxc1qtuf1oaqe.jpg',
  secure_url: 'https://res.cloudinary.com/alsoicode/image/upload/v1503236713/we1yjvlpxc1qtuf1oaqe.jpg',
  original_filename: 'test_r6_c1'
}

我还尝试将文件夹名称添加到

public_id
选项,但这也不起作用。

我做错了什么?

node.js cloudinary
4个回答
9
投票

添加

v2
使上传参数的顺序为(文件、选项、回调) -

cloudinary.v2.uploader.upload(filePath, {
 folder: 'test-directory',
 use_filename: true
});

没有它,顺序是(文件、回调、选项)-

cloudinary.uploader.upload(filePath,function(res){console.log(res);},{
 folder: 'test-directory',
 use_filename: true
})

0
投票
  • 上传参数的顺序为(文件、选项、回调)*

    cloudinary.uploader.upload(
              file,
              {
                  folder: 'directory',
                  use_filename: true
              },
              function (error, result) {
                  if (result.url) {
                      resolve({ url: result.url })
                  } else {
                      reject({ message: "image upload fail", error })
                  }
              },
    
          );
    

0
投票

cloudinary
上传函数需要三个参数,
cloudinary.uploader.upload(path,options,callback)
如果您没有以这种方式声明三个参数,
cloudinary
会将您的文件夹路径理解为回调而不是一个选项,因此它不会理解您指向的路径或文件夹。


0
投票

Cloudinary 上传功能如下所示,选项包含不同字段,包括

folder
字段。

upload(file: string, options?: UploadApiOptions, callback?: UploadResponseCallback)

使用

upload_stream
的朋友可以参考以下示例方法

  uploadFile(file: Express.Multer.File): Promise<CloudinaryResponse> {
    return new Promise<CloudinaryResponse>((resolve, reject) => {
      const uploadStream = cloudinary.uploader.upload_stream(
        {
          folder: 'folderName',
        },
        (error, result) => {
          if (error) return reject(error);
          resolve(result);
        },
      );

      streamifier.createReadStream(file.buffer).pipe(uploadStream);
    });
  }

© www.soinside.com 2019 - 2024. All rights reserved.