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数据库并在前端做出反应。?