【问题标题】:setting Access-Control-Allow-Origin using Rackspace Cloud Java API使用 Rackspace Cloud Java API 设置 Access-Control-Allow-Origin
【发布时间】:2013-05-04 02:22:04
【问题描述】:

我正在使用 Java API 将文件上传到 Rackspace Cloud。我试图弄清楚如何在我上传的文件上设置标题“Access-Control-Allow-Origin”。我在这里找到了另一个关于使用 Python Binding 设置此标头的链接:

Setting Access-Control-Allow-Origin (CORS) in the Rackspace Cloud Files Python API

Java Binding 是否也有类似的 API?我似乎找不到它。

谢谢!

【问题讨论】:

    标签: rackspace-cloud rackspace


    【解决方案1】:

    我不是一个 Java 人,但根据 this,看起来需要在容器上设置元数据,键为 X-Container-Meta-Access-Control-Allow-Origin,值是空格分隔的允许来源列表。

    因此,您需要使用用于为 jclouds API 设置容器元数据的任何函数。

    看来这可以像这样在创建时完成(基于this code的改编):

    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", "*"));
    

    【讨论】:

    • 很好的答案。我对其进行了一次编辑(等待同行评审)以删除“X-Container-Meta-”。 jclouds 会为您处理添加它,因此包含它实际上会导致示例不起作用。除此之外,它就在现场。
    猜你喜欢
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 2019-09-10
    • 2021-01-01
    • 2017-07-31
    • 2016-07-21
    相关资源
    最近更新 更多