小编Jam*_* H.的帖子

一次将大量文件上传到 AWS S3

我有一个应用程序,需要上传超过100,000 files1MB每个)到S3 Bucket. 我知道 S3 有上传大文件的 API,但想知道他们是否有上传大量文件的 API。

我目前正在使用putObject并尝试使用uploadAPI 将我的文件上传到 S3。问题是上传时间太长(浏览器超时后完成)并使用大量内存(超过512MB允许的限制)。

保存文件的代码:

saveFile: async (fileUrl, data) => {
    await s3.putObject({
        Bucket: bucket,
        Key: fileUrl,
        Body: JSON.stringify(data)
    }).promise();
},
Run Code Online (Sandbox Code Playgroud)

在另一个地方,我把它放在这样saveFile的循环中:

for (let file of files) {
    await saveFile(file.url, file.data);
}
Run Code Online (Sandbox Code Playgroud)

我搜索了一个解决方案,发现stream可能有助于减少内存需求,但我想知道时间上有什么不同吗?如果是,我该如何实现?谢谢。

file-upload amazon-s3 amazon-web-services node.js express

4
推荐指数
1
解决办法
4263
查看次数

每次React向Express发送请求时,都会生成一个新会话

我使用React的客户端发送请求,Expressproxyexpress-session设置.但每次React向Express服务器发出请求时,都会创建一个新会话.所以我通过手动访问相同的api url来单独检查Express,并且每次刷新页面时它都会继续使用相同的会话.

项目结构:

project-folder
 - client // React client with proxy set up
      + src
      + package.json
      + ...
 - server.js
 - package.json
Run Code Online (Sandbox Code Playgroud)

内部server.js:

const session = require('express-session');

let sessionConf = {
    name: 'aoid',
    secret: 'stackoverflow',
    resave: true,
    saveUninitialized: true,
    rolling: true,
    cookie: {
        httpOnly: false,
        secure: false,
        maxAge: 2000000
    }
};

app.use(session(sessionConf));

app.get('/api/prod', (req, res, next) => {
    let sessionId = req.sessionID;  // is generated each time React client …
Run Code Online (Sandbox Code Playgroud)

session node.js express reactjs express-session

1
推荐指数
1
解决办法
1685
查看次数