如何在 jclouds 中启用 s3 路径样式访问

Posted

技术标签:

【中文标题】如何在 jclouds 中启用 s3 路径样式访问【英文标题】:How to enable s3 path style access in jclouds 【发布时间】:2015-11-09 08:02:53 【问题描述】:

通常,当我使用 AWS S3 Java SDK 时,我可以通过以下方式启用路径样式访问:

S3ClientOptions clientOptions = new S3ClientOptions()
clientOptions.setPathStyleAccess(true)
awsS3Client.setS3ClientOptions(clientOptions)

我们正在将代码转换为使用 jclouds,但我找不到任何说明如何指定客户端选项或为 Blob 或 BlobStore 设置路径样式访问的文档。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

PROPERTY_S3_VIRTUAL_HOST_BUCKETS 控制路径式访问,配置为ContextBuilder.overrides 的一部分。通用 S3 API 默认为 false 或路径式访问,而特定 AWS-S3 提供程序默认为 true 或主机式访问。

【讨论】:

感谢您的快速回复!只是为了确认一下:我会将 S3 API 与与 S3 兼容的提供商(包括但不限于真正的 AWS)一起使用,而 AWS-S3 提供商专门针对真正的 AWS? 正确。 AWS-S3 提供程序与通用 S3 提供程序相同,但有一些不同的默认值。 我正在使用 Jclouds,我应该将其设置为 - overrides.setProperty("PROPERTY_S3_VIRTUAL_HOST_BUCKETS","true"); ??? 是的,你应该这样做。

以上是关于如何在 jclouds 中启用 s3 路径样式访问的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Clojure 使用 JClouds 和 Rackspace 启用 CDN?

JClouds S3:上传文件时指定内容长度

如何使用 Apache jclouds 访问 HP Helion

如何使用 Jclouds 1.7 访问本机提供程序 API

如何更新现有Amazon S3文件的元数据?

如何在 terraform 语句中启用 s3 复制存储桶权限