Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Multer时将Google云图像从私有设置为公共_Javascript_File Upload_Google Cloud Firestore_Google Cloud Storage_Multer - Fatal编程技术网

Javascript 使用Multer时将Google云图像从私有设置为公共

Javascript 使用Multer时将Google云图像从私有设置为公共,javascript,file-upload,google-cloud-firestore,google-cloud-storage,multer,Javascript,File Upload,Google Cloud Firestore,Google Cloud Storage,Multer,我最近从不推荐的multer地面军事系统切换到了。我大部分时间都在运行它,但我不知道如何公开这些文件。是否有可以在.env文件中设置的变量?现在,当我转到图像页面时,我得到以下信息: <Error> <Code>AccessDenied</Code> <Message>Access denied.</Message> <Details> Anonymous caller does not have storage.objec

我最近从不推荐的multer地面军事系统切换到了。我大部分时间都在运行它,但我不知道如何公开这些文件。是否有可以在.env文件中设置的变量?现在,当我转到图像页面时,我得到以下信息:

<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>
Anonymous caller does not have storage.objects.get access to example-app.appspot.com/xxx-yyy-zzz
</Details>
</Error
我的代码看起来像这样,并且正确地保存了所有内容,除了图像是私有的:

const multer = require('multer');
var multerGoogleStorage = require("multer-google-storage");

dotenv.load({ path: '.env' });

var uploadHandler = multer({
  storage: multerGoogleStorage.storageEngine()
});

app.post('/sell', uploadHandler.any(), homeController.postSellPage);
.env文件

GCS_BUCKET=example-project.appspot.com
GCLOUD_PROJECT=example-project
GCS_KEYFILE=./example-project-firebase-adminsdk-xxx.json

有一些方法可以使访问公开,所以我建议你看看下面的文档和社区上的其他帖子,了解如何实现这一点

在那之后,你应该能够选择对你来说最好的选择,以及遵循哪一个

如果这些信息对你有帮助,请告诉我