列出文件在谷歌云端存储特定时间戳后更改

问题描述 投票:0回答:3

我想列出在node.js中特定时间戳后已经修改/添加在谷歌云端存储中的文件我所经历的文档https://cloud.google.com/storage/docs/how-to但没有发现任何机制吧。

const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
const bucketName = 'my-bucket';
const [files] = await storage.bucket(bucketName).getFiles();

怎样才能文件中列出了其中一个桶中的时间戳之后加入?

java node.js google-cloud-platform google-cloud-storage google-cloud-functions
3个回答
3
投票

这似乎并不可能与给定list API。该文件并没有说明使用日期过滤对象的东西。

这是常见的存储有关在数据库中,这是比较容易查询你想存储文件的任何性质的所有上传的文件数据。你甚至可以使用云功能触发自动将记录写入到数据库中每个文件上传。


0
投票

没有直接的功能,这样做,因为道格·史蒂文森指出,但实际上你可以知道什么时候该文件最后通过在其搜索元数据的修改。例如,看到这个代码片段:

const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
const bucketName = 'your-bucket-name';


storage.bucket(bucketName).getFiles(function(err, files) {
  if (!err) {
    // files is an array of File objects.
         files.forEach(function (file){
                file.getMetadata(function (err, metadata){
                        // TODO: Save only the files before certain metadata.updated date
                        console.log("File named " + metadata.name +
                                    "last updated on: " + metadata.updated);
                });
         });
  }
});

然后,它是由你来创造getMetadata回调函数内的条件只列出/保存文件后,在一定metadata.update日期门槛。


0
投票

有此没有直接的API支持。但是,如果你要需要频繁地做到这一点查询,你可以手动构建工作流,以保持一个索引。它将由一个小的应用程序存储订阅通知有关更改桶的索引,它不得不将检索按日期排序对象的API方法。

© www.soinside.com 2019 - 2024. All rights reserved.