最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

上传文件中的谷歌云存储喜欢用爱可信和表单的数据的本地文件

运维笔记admin9浏览0评论

上传文件中的谷歌云存储喜欢用爱可信和表单的数据的本地文件

上传文件中的谷歌云存储喜欢用爱可信和表单的数据的本地文件

我使用的是axios和form-data NPM包上传本地文件。

这里是基本的代码结构:

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

async function upload()
{
    var path_str = '/path/to/file.pdf';
    var form_obj = new FormData();
    form_obj.append('my_file', fs.createReadStream(path_str));

    var req_obj = {};
    req_obj['url'] = 'https://post-url';
    req_obj['method'] = 'post';
    req_obj['data'] = form_obj;
    return await axios(req_obj);
}

我愿做同样的事情在谷歌云存储中的文件。换句话说,而不是从云存储的文件下载到本地目标,然后使用fs.createReadStream访问它,我宁愿做fs.createReadStream相当于上的文件,而它在云存储。

在谷歌云存储NPM包,File有一个名为createReadStream方法,但是当我插入我的代码,没有工作。

有没有一种方法来实现这一目标?

回答如下:

从你所指出的方法createReadStream:

创建一个可读的流,以读取远程文件的内容。它可以通过管道输送到一个写流或听为“数据”事件来读取文件的内容。

据我所知,你有兴趣粗体字标识的文字。这里是如何做到这一点的例子。此代码读取文件内容,而无需将其下载到本地系统。数据对象是Buffer的实例,这将取决于你如何处理它。

const {Storage} = require('@google-cloud/storage');
const fs = require('fs');

const storage = new Storage();

const bucket = storage.bucket('yourBucketName');
const remoteFile = bucket.file('yourFileName')

remoteFile.createReadStream()
    .on('error', function(err) {})
    .on('response', function(response) {
        console.log('Server connected and responded with the specified status and headers.')
     })
    .on('data', function(data) {
        console.log(data)
        console.log(data.toString())
     })
    .on('end', function() {
        console.log('End')
     })
发布评论

评论列表(0)

  1. 暂无评论