Amazon S3 与 QGIS 的整合

Integration between Amazon S3 and QGIS

有谁知道集成 QGIS 和 S3 存储桶的简单方法?要直接从 gis 平台中的存储桶中读取文件,而无需下载? 我一直在为 R 寻找同样的东西,我发现包 flyio (https://cran.r-project.org/web/packages/flyio/flyio.pdf) 绝对令人惊叹,但仍然存在集成 S3 和 QGIS 的问题。 如果可能的话,我们可以将空间数据从内部服务器转移到 S3 存储,而不仅仅是 raw/table-based 数据。

提前感谢大家的想法和反馈。

我不知道这个问题是否仍然令人感兴趣,但我们的方法是使用 PostgreSQL 和 Amazon RDS 中的 PostGIS 扩展来提供空间数据。不要将文件存储在 S3 存储中,而是将它们上传到 PostgreSQL 表。通过这样做,您还将获得数据的每日快照、更好的性能、使用 SQL 查询数据的能力,甚至可以设置授权规则来满足您的确切需求。

乍一看似乎有点贵,但如果您找到使用 S3 存储的替代方法,您将使用某种额外的服务器,这也会花费同样多的钱。也许某种将 S3 存储添加为网络附加驱动器的软件可以工作,但是如果文件被多人同时使用,您将 运行 陷入并发和同步问题。

如果您找到不同的方法,请告诉我。我不知道你是怎么做到的。

S3 被特别支持作为远程协议,但是 others 表明如果数据是 public,那么使用 HTTP(S) 访问存储桶可能是最简单的。

在数据源管理器中打开一个层(红色、黄色和蓝色方块图标),然后更改为 Protocol: HTTP(S), cloud, etc. 并输入 URL (documentation)。

示例URL:

https://example-bucket.s3.us-east-1.amazonaws.com/sweet-layer.tif

改为通过 vsis3(public 或私有)或 vsicurl(public;可能是私有的,但如果是这样的话会很复杂):

基础是需要环境变量 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY,“bucket”是 URL 和 bucket 路径,“object key”是文件或层的文件夹。