Google云存储是否有fs.ReadDir的Go实现?

Google云存储是否有fs.ReadDir的Go实现?,go,google-cloud-platform,Go,Google Cloud Platform,我正在Go中创建一个web应用程序 我已经修改了我的工作代码,这样它就可以在本地文件系统和基于标志的Google云存储桶上读写文件 基本上我在中间包含了一个小的包,我实现了MY-ON-PKG读文件或MY-ON-PKG写文件等等……/P> 我已经用对我的方法的调用替换了代码中从本地文件系统读取或保存文件的所有调用 最后,这些方法包括一个简单的切换案例,它运行本地读/写的标准代码或从gcp bucket读/写到gcp bucket的代码 我当前的问题 在某些部分中,我需要执行ReadDir来获取Di

我正在Go中创建一个web应用程序

我已经修改了我的工作代码,这样它就可以在本地文件系统和基于标志的Google云存储桶上读写文件

基本上我在中间包含了一个小的包,我实现了MY-ON-PKG读文件或MY-ON-PKG写文件等等……/P> 我已经用对我的方法的调用替换了代码中从本地文件系统读取或保存文件的所有调用

最后,这些方法包括一个简单的切换案例,它运行本地读/写的标准代码或从gcp bucket读/写到gcp bucket的代码

我当前的问题 在某些部分中,我需要执行ReadDir来获取DirEntries列表,然后循环遍历它们。我不想更改代码,只想用my-own-pkg.readDir替换os.readDir

到目前为止,我了解到gcp模块中没有本机函数。所以我想(但这里我需要你的帮助,因为我只是猜测)我需要一个gcp的fs.fs实现。这是go 1.6的一个新特性,我想现在就找到它还为时过早

因此,我尝试创建一个我自己的pkg.ReadDir(folderpath)函数,该函数执行以下操作:

  • 案例“本地”:{}
  • 案例“gcp”:{

  • 我认为您的抽象层很好,但是您需要了解一些关于云存储的知识:目录不存在

    事实上,所有对象都放在bucket的根
    /
    ,对象的完全限定名是
    /path/to/object.file
    。您可以筛选前缀,该前缀返回具有相同路径前缀的所有对象(即,由于目录不存在而返回的文件)


    这不是对您问题的完整回答,但我相信您可以考虑并重新设计代码的其余部分,并考虑到这一特殊性。

    嗨,纪尧姆,谢谢您的提示。是的,我知道这是一个平面结构,实际上我正试图通过重新创建DirEntries来模拟ReadDir的结果。但要做到这一点,我想我需要获取AAAAll文件,在第一个定界符上截断名字,这样我就可以考虑第一个“令牌”。然后我的想法是为所有这些条目将isDir设置为true,为其余条目设置为false…这只是有点乏味,因为据我所知,我需要实现许多文件系统结构,如果您尝试将平面文件系统转换为分层文件系统,当然会有折衷还有注意事项。filestore是您产品的更好解决方案吗?再见,纪尧姆。也许您是对的……我不知道filestore,但我想它最适合我的特定任务……同时,我将继续实现我自己的ReadDir,我希望我的测试成功……这不是不可能的,但有点棘手……感谢filestore su加油!