我正在使用 Java API 将文件上传到 Rackspace Cloud。我试图弄清楚如何在我上传的文件上设置标题“Access-Control-Allow-Origin”。我在这里找到了另一个关于使用 Python Binding 设置此标头的链接:
在 Rackspace Cloud Files Python API 中设置 Access-Control-Allow-Origin (CORS)
Java Binding 是否也有类似的 API?我似乎找不到它。
谢谢!
我正在使用 Java API 将文件上传到 Rackspace Cloud。我试图弄清楚如何在我上传的文件上设置标题“Access-Control-Allow-Origin”。我在这里找到了另一个关于使用 Python Binding 设置此标头的链接:
在 Rackspace Cloud Files Python API 中设置 Access-Control-Allow-Origin (CORS)
Java Binding 是否也有类似的 API?我似乎找不到它。
谢谢!
我不是一个 Java 人,但根据这一点,看起来需要在您的容器上设置元数据,键为X-Container-Meta-Access-Control-Allow-Origin
,并且值是空格分隔的允许来源列表。
因此,您需要使用用于为 jclouds API 设置容器元数据的任何函数。
看来这可以像这样在创建时完成(基于此代码的改编):
CreateContainerOptions options = CreateContainerOptions.Builder
.withMetadata(ImmutableMap.of("Access-Control-Allow-Origin", "*"));
swift.getApi().createContainer(Constants.CONTAINER, options);
翻阅文档,我在 org.jclouds.openstack.swift.CommonSwiftClient 中找到了以下函数:
boolean setContainerMetadata(String container,
Map<String,String> containerMetadata)
因此,看起来您应该能够通过以下方式完成您正在寻找的事情:
swift.getApi().setContainerMetadata(container, ImmutableMap.of("Access-Control-Allow-Origin", "*"));