Apollo-upload-client 与 Cloudinary

Posted

技术标签:

【中文标题】Apollo-upload-client 与 Cloudinary【英文标题】:Apollo-upload-client with Cloudinary 【发布时间】:2019-04-20 06:54:33 【问题描述】:

我正在尝试使用 apollo-upload-client、graphql 和 cloudinary 上传图片,

目标:成功上传图片到cloudinary,获取cloudinary url并插入数据库

目前:未收到任何错误消息,但未看到上传到 cloudinary 的文件

帮助:我下面的代码是否正确?有人在他们的代码中成功实现了使用 apollo-client-upload、graphql 和 cloudinary 的解决方案吗?如何从我可以插入到我的数据库中的 cloudinary 获取响应 url

到目前为止,我已经通过上传到我们自己的本地服务器进行了测试,并且代码运行良好。我已隔离,错误可能来自以下部分

提前致谢

export const cloudinaryUpload = async ( stream : any): Promise<string> => 
  console.log("stream upload gql ", stream);
  cloudinary.config(
    cloud_name: process.env.cloud_name,
    api_key: process.env.CLOUDINARY_API_KEY,
    api_secret: process.env.CLOUDINARY_API_SECRET
  );

  cloudinary.uploader
    .upload_stream( resource_type: "raw" , function(error: any, result: any) 
      console.log("error ", error);
      console.log("result ", result);
    )
    .end(stream.buffer);

  return `Test`;
;



export const processUpload = async (upload: any) => 

  const  stream  = await upload;

  const  id  = await storeUpload( stream );
  return `id`;

【问题讨论】:

【参考方案1】:

这对我有用:

const cloudinary = require('cloudinary').v2;
cloudinary.config(
  cloud_name: process.env.CLOUDINARY_CLOUDNAME,
  api_key: process.env.CLOUDINARY_API_KEY,
  api_secret: process.env.CLOUDINARY_API_SECRECT,
);

const imageUpload = async (imageFile) => 
  try 
    const  createReadStream  = await imageFile;
    const stream = createReadStream();
    const cloudinaryResponse = await cloudinary.uploader.upload(stream.path,  folder: 
'my-folder' );
    return cloudinaryResponse.eager[0].secure_url;
   catch (error) 
    throw new Error('There was a problem uploading your image. Please try again.');
  
;

【讨论】:

【参考方案2】:

我在弄清楚如何将文件上传到 cloudinary 时遇到了相同类型的问题,并在此处和 Cloudinary 的支持论坛上遇到了这个问题。

如果其他人遇到困难,这里的解决方案是:https://support.cloudinary.com/hc/en-us/community/posts/360031762832-graphql-upload-with-cloudinary

【讨论】:

感谢 Rene 指出。我恰好是在 cloudinary 上发布解决方案的人。快乐编码:)

以上是关于Apollo-upload-client 与 Cloudinary的主要内容,如果未能解决你的问题,请参考以下文章

Dropzone Apollo-upload-client 使用 Upload!类型

是否有与 Apollo 的 ReactNativeFile 等效的 URQL(来自 apollo-upload-client)?

如何使用带有apollo-upload-client的graphene-file-upload将graphql中的文件上传到Python数据库并在前端做出反应。?

无法将 quicklisp 与 clozure-cl 一起使用

为啥我的代码无法与墨西哥一起构建但与 cl 一起使用?

NLP/CL 顶会收录