小编use*_*465的帖子

使用带有 inmemory 选项的 multer 并流式传输到 mongodb gridfs

以下代码按预期工作:它读取已使用 multer [https://github.com/expressjs/multer] 上传的文件并将其流式传输到 gridfs。我也能够从 gridfs 中蒸出它。

var target = gfs.createWriteStream({
            filename: fileItem.originalname,
            mode: 'w',
            metadata: metaData
        });

        fs.createReadStream(tempFile)
            .on('end', function () {
                console.log('File read and stored');
            })
            .on('error', function (err) {
                console.log('Error handling file ' + err);
            })
            .pipe(target);

        // Attach new file to document list
        target.on('close', function (file) {
            filesUploadedList.push(file._id);
Run Code Online (Sandbox Code Playgroud)

fileItem是通过迭代req.files.file上传的文件获得的。

但是,我正在尝试找出 multer 的 inMemory 选项。如果我将此设置为 true,fileItem则将填充缓冲区。请注意,如果没有此选项, 的缓冲区/内容fileItem是空的,这就是为什么在上面的代码中从fileItem.location.

用内容填充目标的最佳方法是什么?该fs.createReadStream做的那一刻管道。

谢谢。

J

mongodb node.js gridfs

5
推荐指数
2
解决办法
1万
查看次数

詹金斯内部docker-compose的环境变量

我有以下设置:

Jenkins运行docker-compose的环境,但是我需要将环境变量传递给yml文件:

样本docker-compose.yml

version: '2'

services:  
  logon_server:
    build: .
    image: my_server:0.0.1
    ports:
      - "9200:9200"
    command: ${DOCKER_CMD_EXEC}
    networks:
      - my_ntwrk

networks:
  my_ntwrk:
Run Code Online (Sandbox Code Playgroud)

当我从Mac上的shell提示符运行以下脚本时,我可以传递要执行的不同命令,并且一切正常:

exec-tests.sh

#!/bin/bash

chmod 755 docker/exec-*.sh

# Setup env variables
export DOCKER_CMD_EXEC=/ci_e2e.sh

# Optional: record current versions
docker -v && docker-compose -v

echo `whoami` 

echo `sudo -E -u admin printenv`

# Build, deploy and run E2E test cases
sudo -E -u admin docker-compose up --no-color --abort-on-container-exit
Run Code Online (Sandbox Code Playgroud)

当我在jenkins作业中运行脚本时,在“构建环境”->“执行Shell”->“命令”下,这是我所谈论的图像:

shell命令示例

我收到以下错误:

The DOCKER_CMD_EXEC variable is not set. Defaulting to a blank …
Run Code Online (Sandbox Code Playgroud)

bash shell environment-variables jenkins docker

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