Tag: 谷歌云存储

如何在Node.js中使用bigquery API获取800万条Google Cloudlogging?

我正在使用BigQuery查询Google云数据。 当我运行查询时,它返回大约8百万行。 但它会抛出错误: 响应太大,无法返回 我怎么能得到所有800万条logging,任何人都可以帮忙。

如何使用Node.js将base64编码图像(string)直接上传到Google Cloud Storage存储桶?

目前,我正在使用@ google-cloud / storage NPM软件包将文件直接上传到Google云端存储分区。 这需要一些诡计,因为我只有图像的base64编码的string。 我不得不: 解码string 将其另存为一个文件 将文件path发送到以下脚本以上传到Google云端存储 删除本地文件 我想避免将文件存储在文件系统中,因为我使用的是Google App Engine,如果删除操作无论如何都不起作用,我不想在那里重载文件系统/将垃圾文件放在那里。 这就是我的上传脚本现在看起来像: // Convert the base64 string back to an image to upload into the Google Cloud Storage bucket var base64Img = require('base64-img'); var filePath = base64Img.imgSync(req.body.base64Image, 'user-uploads', 'image-name'); // Instantiate the GCP Storage instance var gcs = require('@google-cloud/storage')(), bucket = gcs.bucket('google-cloud-storage-bucket-name'); […]

使用node.js为Google云端存储创build签名的URL,以便从浏览器直接上传

实际的testing用例代码: https : //github.com/HenrikJoreteg/google-cloud-signedurl-test-case 我正在尝试添加API的function,以便将签名的URL从客户端直接上传到Google Cloud Storage。 Serverside,我正在使用gcloud SDK: const gcloud = require('gcloud') const gcs = gcloud.storage({ projectId: 'my project', keyFilename: __dirname + '/path/to/JSON/file.json' }) const bucket = gcs.bucket('bucket-name') bucket.file('IMG_2540.png').getSignedUrl({ action: 'write', expires: Date.now() + 60000 }, (error, signedUrl) => { if (error == null) { console.log(signedUrl) } }) 然后在浏览器中,我有一个<input type='file'/>我select了一个文件,然后我试图把它张贴到从我的服务器端脚本生成的URL,如下所示: function upload(blobOrFile, url) { […]

Node.js POST文件到服务器

我正在尝试编写一个应用程序,允许我的用户将file upload到我的Google云端存储帐户。 为了防止覆盖,并做一些自定义处理和日志logging,我使用Node.js服务器作为中间人上传。 所以这个过程是: 用户将file upload到Node.js服务器 Node.js服务器parsing文件,检查文件types,在数据库中存储一些数据 Node.js服务器将file upload到GCS Node.js服务器响应用户请求的通过/失败备注 我正在步骤3中input一些文件,到底如何把这个文件发送给GCS。 这个问题提供了一些有用的见解,以及一个很好的例子,但我仍然困惑。 我明白,我可以打开一个ReadStream的临时上传文件,并将其传递给http.request()对象。 我感到困惑的是如何在POST请求中表示pipe道数据是filevariables。 根据GCS API Docs ,需要有一个filevariables,它需要是最后一个。 那么,如何为pipe道数据指定一个POSTvariables名呢? 如果您可以告诉我如何直接从我的用户上传pipe道,而不是将其存储在一个临时文件中,奖金点

更改Google容器引擎群集的权限

我已经能够在开发人员控制台中成功创build一个Google容器集群,并已经部署了我的应用程序。 这一切都开始良好,但是我发现我无法连接到云SQL,我得到; "Error: Handshake inactivity timeout" 经过一番挖掘,我没有任何问题从App Engine或我的本地机器连接到数据库,所以我觉得这有点奇怪。 那时我注意到了集群权限… 当我select我的集群时,我看到以下; Permissions User info Disabled Compute Read Write Storage Read Only Task queue Disabled BigQuery Disabled Cloud SQL Disabled Cloud Datastore Disabled Cloud Logging Write Only Cloud Platform Disabled 我真的希望在我的容器引擎节点中使用云存储和云SQL。 我已经允许在我的项目设置中访问这些API中的每一个,并且我的Cloud SQL实例正在接受来自任何IP的连接(我之前在App Engine上的Managed VM中运行过Node),所以我的想法是Google显式禁用这些API的。 所以我的两个问题是: 有没有什么办法可以修改这些权限? 有没有什么理由让这些API被禁用? (我假设必须有) 任何帮助非常感谢!

使用node.js删除谷歌云存储中的多个对象

我需要从谷歌云存储中删除多个对象。 我一次删除了一个对象。 这是我的代码: var gcloud = require('gcloud')({ projectId: "sampleProject1" }); var gcs = gcloud.storage(); var myBucket = gcs.bucket('sampleBucket1'); var file = myBucket.file('1.png'); file.delete(function (err, apiResponse) { if (err) { console.log(err); } else { console.log("Deleted successfully"); } }); 但是我需要同时删除多个对象。 有没有可能?

为什么我的解决scheme如此之慢以及如何提高查询的性能?

目前我能够优化性能相当多,但它仍然有点慢:/ 最新编辑: 我目前的解决scheme(最快的ATM(但仍然缓慢),并保持秩序): 服务器 router.post('/images', function(req, res, next) { var image = bucket.file(req.body.image); image.download(function(err, contents) { if (err) { console.log(err); } else { var resultImage = base64_encode(contents); var index = req.body.index; var returnObject = { image: resultImage, index: index } res.send(returnObject); } }); }); 客户端查询 $scope.getDataset = function() { fb.orderByChild('id').startAt(_start).limitToFirst(_n).once("value", function(dataSnapshot) { dataSnapshot.forEach(function(childDataSnapshot) { _start […]