我安装aws-s3-zipper
使用npm
,之后,我得到这个错误。
这是我的代码:
AWS = require("aws-sdk");
var S3Zipper = require("aws-s3-zipper");
function zipFolderOnS3() {
var zipper = new S3Zipper(config);
return new Promise((resolve, reject) => {
var config = {
accessKeyId: process.env.ACCESS_KEY_ID,
secretAccessKey: process.env.SECRET_ACCESS_KEY,
region: process.env.REGION,
bucket: process.env.BUCKET_NAME
};
var zipper = new S3Zipper(config);
try {
zipper.zipToS3FileFragments({
s3FolderName: "Documents"
, MaxFileCount: 50
//, startKey: ‘keyOfLastFileIZipped' // optional
, S3ZipFileName: "Documents.zip",
recursive: true
}, function (err, result) {
if (err) {
console.error(err);
}
else {
console.error("File uploaded on s3");
}
});
} catch (e) {
console.log(e)
}
});
}
module.exports = {
zipFolderOnS3
};
4条答案
按热度按时间gj3fmq9x1#
aws-s3-zipper
依赖于s3
node-s3-client,graceful-fs
依赖于graceful-fs
,该graceful-fs
(s3@4.4.0当前包含的版本)与节点v12及以上版本存在问题/不兼容性。根据this graceful-fs v4.2.2已知可与节点12…
真正需要发生的是,node-s3-client需要更新它们对graceful-fs的依赖。已经有一个open github issue,其中有人建议使用@auth0/s3。
所以,你可以尝试让
aws-s3-zipper
切换到使用它,直到官方软件包更新。或者...aws-s3-zipper
只是一个单独的文件,所以你也可以把它复制到你的项目中。以下是我能够得到的工作:
1.首先更新你的部门
1.将index.js source code从aws-s3-zipper复制到项目中的一个新文件中,比如
./aws-s3-zipper.js
。1.更新文件中的require语句:
1.最后,修复你复制下来的
./aws-s3-zipper.js
中的依赖问题:我在
aws-s3-zipper
仓库中评论了this GitHub issue,认为他们可能有同样的问题,看看他们是否可能暂时切换到@auth0/s3
。guicsvcw2#
将s3中的依赖项从
graceful-fs": "~3.0.5",
更新为"graceful-fs": "^4.2.6",
我决定了
l0oc07j23#
此分类上一篇:https://github.com/andrewrk/node-s3-client/issues/236
将以下内容添加到package.json文件中,这样s3就可以使用node > 12了。
k5ifujac4#
正如其他人提到的,你必须升级
graceful-fs
,但我不得不手动修改我的包锁,然后运行npm install
。