我正在尝试从React应用程序的Google Cloud Storage存储桶中读取数据。我的存储桶不能对Internet公开。我已创建服务帐户,以授予我的应用访问存储桶的授权。我可以访问存储桶并列出文件,但无法下载文件的内容:出现以下错误:* * 类型错误:可读不是可异步迭代的**
我使用create-react-app创建了我的应用,我的节点模块版本为:一个月一个月一个月一个月一个月
我的代码如下:
import React, {useState} from 'react';
import {Storage} from "@google-cloud/storage";
import jsonKey from '../keys/`[my-json-key].json';
export default function TestsLight() {
const [fileData, setFileData] = useState(null);
/* Files and Bucket details: */
const file_name = 'my-file.csv';
const bucketName = 'my-bucket.appspot.com';
/* Storage instantiation: works: */
const storage = new Storage({credentials: jsonKey});
const bucket = storage.bucket(bucketName);
const myFile = bucket.file(file_name);
/* file download: DOES NOT WORK: returns `TypeError: readable is not async iterable` */
myFile.download(function (err, contents) {
console.log('err: ', err);
console.log('contents: ', contents);
contents && setFileData(contents);
});
return (
fileData ?
<div>
{fileData}
</div> :
<div>
<span>no data</span>
</div>
)
}
我按照步骤
https://cloud.google.com/nodejs/docs/reference/storage/latest
我试着:
- 创建存储桶:* 作品 *
- 列出存储桶中的文件:* 作品 *
- 将文件的内容下载到内存或本地文件中:* 不工作 : * 类型错误:可读不是可异步迭代的**
知道出了什么问题吗?非常感谢
- 2023年1月13日编辑:添加标签
node.js
*
1条答案
按热度按时间ccrfmcuu1#
我已经和负责存储客户端库的Google团队确认过了,它不工作的原因是我的代码在浏览器中运行,而存储库只能在服务器端运行。有关完整的讨论和细节,请参见here。