问题标签 [multer-s3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
860 浏览

javascript - Multer-s3 在手机上上传空文件

我正在使用 Angular 和 multer-s3 将文件从 Angular 应用程序上传到节点服务器。在桌面上一切正常,但由于某种原因,当尝试通过我的 iPhone 7 上传照片时,上传的文件已损坏。我使用相同的图像并在两个设备上运行相同的流程但得到不同的结果所以我假设它是因为移动设备?

这是我尝试在移动设备上打开 S3 文件时收到的警报

这是我的代码

这是我的客户端

更新 **********

所以发现你可以在手机上调试。看起来我发送的缓冲区中有数据。我的第一个想法是缓冲区没有发送。

在此处输入图像描述

****更新仍然无法弄清楚这一点。我做了一些研究,它可能与 formData 和 append 有关?但正如您从上面的图片中看到的那样,两者似乎都很好。会继续研究...

***** 更新肯定上传空文件。但它只在手机上?

在此处输入图像描述

此外,我在发送到节点服务器之前检查了 formData,似乎其中包含正确的数据。

*** 更新

好吧,甚至更奇怪的经历。似乎 multer-s3 正在上传空文件,但是当我在服务器端获取文件并将其返回到客户端,然后读取该文件并显示它时,图像会完美显示。所以formData不是问题,我假设它与multer-s3有关?

****更新我忘了提到我正在使用fabricjs并从画布中获取图像。我在某些地方读到那里可能存在问题,但就像我上面所说的,当我将文件发送到服务器并将其发送回客户端时,在读取文件后它会完美地显示图像。

****更新我尝试将 contentType 添加到 multer 方法,现在仅在移动设备上运行时收到 503 服务不可用错误。对于台式机来说很好。

我什至尝试运行 multer-s3 的自动查找 mime-type 功能,但确实给出了相同的结果

**** 第 4 天

我开始调试这个问题已经 96 小时了。没有取得任何进展。仍在试图弄清楚为什么它在桌面而不是移动设备上工作。对于任何想要快速总结行为的人:

  1. 用户在桌面上传图片

  2. 用户将图像放在画布上

  3. 使用比例图像

  4. 用户按下 sendImage

  5. 这会将图像转换为 dataUri 然后 blob

  6. 此 blob 被添加到附加到 formData 的文件中

  7. 这个formData被发送到一个nodejs服务器,multer-s3中间件将文件成功上传到s3

  8. 用户在手机上试用

  9. 第 7 步失败。文件已上传,但为空。

如果有人对如何继续有任何想法,请告诉我。

0 投票
2 回答
2764 浏览

node.js - Multer s3 文件名

我正在使用 multer s3 将图像从我的 node.js 应用程序上传到我的亚马逊存储桶。我使用日期和原始文件名来创建新文件名;但是,当我尝试显示新文件名时,它只是显示为未定义。这是我的代码:

欢迎任何帮助。

0 投票
1 回答
725 浏览

node.js - Multer 意外字段错误处理

我的 multer 中间件的路线是这样的。

我定义的 multer 函数是允许将单个文件上传到文件系统。一切正常,问题是如果我将字段名称定义为file如果在我的客户请求中我将字段名称设置为file它很好用。但是,如果我给它,xyz那么它会引发错误。catch(e)在我的承诺中,问题应该是我似乎无法捕捉到那个错误。

这是我得到的错误

我在我的catch块中尝试的当前实现是这样的。(这不起作用)

0 投票
1 回答
1764 浏览

node.js - 使用 Multer MulterS3 和 AWS SDK、NodeJS 将文件上传到 Digitalocean Spaces

我正在尝试使用快速 API 将文件上传到我的 Digitalocean Space。以下上传方法中的日志永远不会被调用,并且总是返回成功状态。在路线 req.files 文件通过,但没有文件上传。我找不到任何信息显示可以提供更好结果的不同方法。

我的上传路线:

我使用超级代理从前端上传功能:

0 投票
3 回答
349 浏览

javascript - reactjs:无法通过反应将文件传递到节点后端

我正在尝试通过 React 中的表单字段将图像发送到后端。我首先在我的构造函数类中将状态分配为空

然后,我为图像和普通文本字段创建了一个 handleChange 函数。

在 handleSubmit 函数中,我正在调用 FormData 函数并将图像附加到它,如下所示

最后,这是我的表单域

当我提交此表单并在 Chrome 控制台中检查我的“网络”选项卡时,formData 似乎为空,即没有传递图像。当我选择一个文件调用后端路由时,文件被上传,但我无法从 React 前端实现这一点,并且图像永远不会被传递。我哪里错了?

0 投票
2 回答
1759 浏览

node.js - Amazon S3 存储桶文件上传响应不可用

我正在使用multeraws-sdkmulter-s3 包以及 express。

当用户编辑个人资料时,用户可能会更改个人资料图片/头像。

我已经通过了 multer 对象

multer({storage: multer.memoryStorage()}).single('profileHeroImageEdit')

如果文件具有当前请求,那么我会将文件上传到 s3 存储桶,但我没有从upload_replace收到任何响应,其中req.file.location将提供 S3 存储桶的 url(文件的位置)。在upload_replace 中 ,我可以获取要上传的文件(req.file),但我想要上传文件到 S3 bucket 的位置。

我错过了什么?帮助将不胜感激

0 投票
1 回答
1658 浏览

node.js - 如何在 Multer-s3 中使用动态存储桶名称进行文件上传

我正在尝试使用节点 js 将文件上传到 AWS S3。

我的要求是在 multerS3 存储对象中使用动态值作为存储桶

我正在尝试通过请求对象传递值并在存储桶参数中使用它。但它是未定义的。

在这两种情况下 req.bucketName 和 req.body.bucketName 都是未定义的。

需要帮助来解决这个问题。

我的邮递员要求如下

在此处输入图像描述

谢谢你的帮助。

0 投票
0 回答
331 浏览

amazon-s3 - Multer-s3 动态 s3 实例

我正在尝试使用multermulter-s3 for Nodejs将文件上传到我的 s3 存储桶。我现在遇到的问题是我想动态设置我的 s3 实例,因为 s3 帐户和存储桶取决于我的用户设置。

我有以下代码:

我的上传者

问题是multer-s3不允许 s3 选项的函数作为参数,而是 s3 对象。

我怎样才能接近这个?

0 投票
1 回答
4340 浏览

node.js - 如何在 aws lambda 处理程序中使用 multer-s3 作为中间件

我正在尝试将multipart/form-data表单发送到AWS-Lambda方法。我需要能够将文件发送到S3,并使用传入的字符串参数,我需要将元数据记录到 RDS。

现在,我可以使用expressmulter-s3来做到这一点,如下所示;

我的问题是,是否可以在 AWS Lambda 方法中使用 multer-s3?如果答案是否定的,或者不推荐,请您指出正确的方向吗?

谢谢..

0 投票
2 回答
1025 浏览

node.js - 在 Multer-s3 上重命名上传的图像

概述:

我正在使用S3让用户上传图片。我正在使用一种PUT方法处理更新路由,该方法获取存储在存储桶中临时文件夹中的给定图像的 url,S3并将其删除到图像文件夹中。

这是我的上传对象:

在我正在使用的路由文件中:

问题:

此对象在上传新文件时有效,但不适用于更新文件(重命名文件)。