小编fer*_*oze的帖子

如何为存储桶中不存在的密钥返回404(而不是403)S3桶

我使用S3来存储一些关键业务文档.我希望存储桶在尝试访问存储桶中不存在的对象时返回404状态代码.

但是,我发现它一直让我回归"403

这是使用S3网站URL的会话示例.

> GET /foobar.txt HTTP/1.1
> User-Agent: curl/7.21.6 (x86_64-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
> Host: <bucketname>.s3-website-us-east-1.amazonaws.com
> Accept: */*
> 
< HTTP/1.1 403 Forbidden
< Last-Modified: Mon, 09 Sep 2013 19:10:28 GMT
< ETag: "14e13b81b3ce5b129d1f206b3e514885"
< x-amz-error-code: AccessDenied
< x-amz-error-message: Access Denied
< x-amz-request-id: <snip>
< x-amz-id-2: <snip>
< Content-Type: text/html
< Content-Length: 11
< Date: Thu, 26 Sep 2013 20:01:45 GMT
< Server: AmazonS3
< 
Not found!
Run Code Online (Sandbox Code Playgroud)

注意,"未找到!" 启用S​​3网站托管时,字符串来自桶属性上设置的错误文档.

我也尝试直接使用桶URL访问

HTTP://.s3.amazonaws.com/

除了错误文档而不是错误文档之外,我得到一个XML文档

我该如何解决这个问题?

amazon-s3

44
推荐指数
5
解决办法
3万
查看次数

如何使用Apache HTTPComponents HttpClient在HTTP请求中启用SNI?

我试图找出如何将成功的HTTP GET请求发送到需要SNI的服务器.

我搜索了SO和其他地方,发现一些文章说JDK现在支持SNI,以及Apache HTTP Components.

https://issues.apache.org/jira/browse/HTTPCLIENT-1119 https://wiki.apache.org/HttpComponents/SNISupport

相关SO文章:HTTPSURLconnection和Apache(系统)DefaultHttpClient之间的证书链不同

-

但是,我似乎无法找到任何显示如何使其工作的文档.

这是我正在使用的代码......


            KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType());
            String trustedCertsPath = System.getenv("JAVA_HOME") + "/jre/lib/security/cacerts";
            FileInputStream certstream = new FileInputStream(new File(trustedCertsPath));
            try {
                trustStore.load(certstream, "changeit".toCharArray());
            } finally {
                certstream.close();
            }

// Trust own CA and all self-signed certs SSLContext sslcontext = SSLContexts.custom() .loadTrustMaterial(trustStore, new TrustSelfSignedStrategy()) .build(); // Allow TLSv1 protocol only SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( sslcontext, new String[] { "TLSv1" }, null, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); CloseableHttpClient httpclient2 = HttpClients.custom() .setSSLSocketFactory(sslsf) .build(); CloseableHttpClient httpclient = …
Run Code Online (Sandbox Code Playgroud)

sni apache-httpclient-4.x

9
推荐指数
1
解决办法
1万
查看次数

kafka绑定到ipv6端口,即使在config中指定了ipv4地址

我有点绑定(双关语).

我有一个运行kafka和zookeeper的ubuntu服务器.此服务器同时安装了ipv4和ipv6协议.

在server.properties文件中,我将host.name和advertised.host.name指定为我的公共ipv4地址.

当我启动zookeeper和kafka时,kafka仍然绑定到ipv6端口.

$ netstat -l -t | grep 9092 
tcp6       0      0 ferozed-linux3.mydomain:9092 [::]:*                  LISTEN
Run Code Online (Sandbox Code Playgroud)

我在MapReduce作业中运行生产者的客户端计算机是IPv4计算机.由于服务器绑定到IPv6接口,客户端无法连接到它.

知道如何解决这个问题吗?

apache-kafka

6
推荐指数
1
解决办法
5380
查看次数

执行ImageEnhance.Sharpness()时"无法过滤调色板图像"错误

我有一个GIF图像文件.我打开它PIL.Image并对其进行了几次尺寸转换.然后我试着用ImageSharpness.Enhance()它......

sharpener = PIL.ImageEnhance.Sharpness(img)
sharpened = sharpener.enhance(2.0)
Run Code Online (Sandbox Code Playgroud)

这导致异常:

<type 'exceptions.ValueError'>
('cannot filter palette images',)
Run Code Online (Sandbox Code Playgroud)

我试图谷歌这个错误,但没有找到任何东西.有人能帮我弄清楚出了什么问题吗?

FYI输入图像的模式是'P'.如果我使用jpg图像,我没有这个问题.

python image image-processing python-imaging-library pillow

5
推荐指数
1
解决办法
2814
查看次数

Java - ByteBuffer.remaining()问题

简介:我有一个ByteBuffer,我在其中提取一些数据.之后,我想通过Socket发送这些数据.

所以,我写了这样的代码:

    private static void serialize(ByteBuffer buffer, EmployeeData emp, CharsetEncoder encoder)
{
    // id
    buffer.putInt(emp.getId());

    CharBuffer nameBuffer = CharBuffer.wrap(emp.getFirstName().toCharArray());
    ByteBuffer nbBuffer = null;

    // length of first name
    try
    {
        nbBuffer = encoder.encode(nameBuffer);
    } 
    catch(CharacterCodingException e)
    {
        throw new ArithmeticException();
    }

    System.out.println(String.format("String [%1$s] #bytes = %2$s", emp.getFirstName(), nbBuffer.limit()));
    buffer.putInt(nbBuffer.limit());
    buffer.put(nbBuffer);

    // put lastname
    nameBuffer = CharBuffer.wrap(emp.getLastName().toCharArray());
    nbBuffer = null;

    // length of first name
    try
    {
        nbBuffer = encoder.encode(nameBuffer);          
    } 
    catch(CharacterCodingException e)
    {
        throw new ArithmeticException();
    }

    System.out.println(String.format("String [%1$s] #bytes …
Run Code Online (Sandbox Code Playgroud)

java bytebuffer

4
推荐指数
1
解决办法
1万
查看次数

无法使用调试器附加到正在运行的 spring 集成测试

我正在使用 maven 运行 spring 集成测试。我试图在启用调试端口的情况下运行它,以便我可以从 IntelliJ 想法附加到它。

以下命令行过去曾经工作过。它曾经允许surefire启动初始化,然后在继续测试之前等待连接到端口8000:

-Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" -DtestIntegration test

但是,这现在给了我以下例外:

[错误] 在当前项目和插件组 [com.zillow, org.apache.maven.plugins, org.codehaus.mojo] 中找不到前缀“runjdwp”的插件[本地 (/home/ferozed) /.m2/repository-p4), nexus ( http://repo.zillow.local/content/groups/public)] -> [Help 1] org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException:找不到插件当前项目和插件组 [com.zillow, org.apache.maven.plugins, org.codehaus.mojo] 中的前缀“runjdwp”可从存储库 [本地 (/home/ferozed/.m2/repository-p4 ), 联系 ( http://repo.zillow.local/content/groups/public)] 在 org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolve(DefaultPluginPrefixResolver.java:93) 在 org.apache.maven.lifecycle.internal.MojoDescriptorCreator.findPluginForPrefix(MojoDescriptorCreator.java:260.mavenorg.maven) .lifecycle.internal.MojoDescriptorCreator.getMojoDescriptor(MojoDescriptorCreator.java:220) at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:106) at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:106) at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:106) (DefaultLifecycleTaskSegmentCalculator.java:86) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:98) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) at org.apache。行家。DefaultMaven.execute(DefaultMaven.java:152)

任何想法如何让这个工作?

java spring intellij-idea maven

4
推荐指数
1
解决办法
3685
查看次数

无法使用 kafka-avro-console-consumer 读取 avro 消息。SerializationException:未知的魔法字节

我正在编写一个 REST 代理,比如融合的休息代理。它接受一个 JSON 负载、模式主题和 id,然后将 JSON 负载作为 Avro 对象写入流中。当我使用 kafka-avro-console-consumer 读取消息时,我收到“未知的魔法字节”错误。

这是我的 kafka 生产者配置:

        properties.put("client.id", LocalHostUtils.getLocalHostName(null));

        properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, KafkaAvroSerializer.class);

        properties.put(AbstractKafkaAvroSerDeConfig.AUTO_REGISTER_SCHEMAS, false);
        properties.put(KafkaAvroSerializerConfig.VALUE_SUBJECT_NAME_STRATEGY, RecordNameStrategy.class);

        properties.put("schema.registry.url", configValuesManager.getString("dsp_kafka.schema_registry"));

        if (KafkaUtils.isKafkaEnabled()) {
            this.kafkaProducer = new KafkaProducer<String, Object>(properties);
        }
Run Code Online (Sandbox Code Playgroud)

这就是 REST 控制器如何将传入的 JSON 转换为 Avro

        Schema schema = null;
        try {
            schema = schemaRegistryClient.getBySubjectAndID(schemaSubject, schemaId);
        } catch (RestClientException e) {
            throw new IOExceptionWithCause(e);
        }

        log.debug(postContent);
        log.info("Subject/Version {}/{} -> {}", schemaSubject, schemaId, schema);
        Object data = toAvro(schema, postContent);
Run Code Online (Sandbox Code Playgroud)

这是该toAvro方法的实现:

    Object toAvro(Schema schema, …
Run Code Online (Sandbox Code Playgroud)

avro apache-kafka kafka-consumer-api kafka-producer-api

2
推荐指数
1
解决办法
2424
查看次数

urllib3 - 无法设置 http 代理

我正在尝试维护与代理的连接池。我的代码如下所示:

>>> from urllib3 import PoolManager
>>> pool = PoolManager(10)
>>> pool.urlopen('GET', 'http://http-server/index.html',fields=None,headers=None,encode_multipart=False,multipart_boundary=None,proxies={'http': 'http://proxy'})
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它失败了:

> 
> Traceback (most recent call last):
>   File "<stdin>", line 1, in   <module>
>   File "urllib3/poolmanager.py", line 117, in urlopen
>     response = conn.urlopen(method, u.request_uri, **kw)
> File "urllib3/connectionpool.py", line 427, in urlopen
>     **response_kw)   
> File "urllib3/response.py", line 195, in from_httplib
>     **response_kw) 
> TypeError: __init__() got an unexpected keyword argument 'proxies'
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?根据 urllib3 文档,关键字 args 被发送到 urlopen,但在这种情况下似乎没有发生。

这是urllib的链接,描述了代理关键字 arg 的用法。

proxy http urllib3

1
推荐指数
1
解决办法
1万
查看次数

Kafka批量生产者API在哪里?

我使用kafka作为消息传递平台.我需要向它发送一大堆消息.我正在搜索可以获取记录列表的批量api,但在kafka-clients工件中找不到它.

Java中的Kafka是否有批量生产者API?

apache-kafka

1
推荐指数
1
解决办法
2911
查看次数

无法使ExtensionSidebarPane.setObject工作

我正在尝试修改debugtools元素面板以添加我自己的自定义数据.该数据与正在检查的页面的网页DOM无关.我想把自己的东西放在那里.

所以,我做了以下事情:

function createDebug(token)

    {
        console.log("createDebug() " + token);
        chrome.devtools.panels.elements.createSidebarPane(
            "Token Details: " + token,
            function(sidebar) {
              function updateElementProperties() {
                console.log("updateElementProperties()");
                var data = {};
                data.token = token;
                var s = JSON.stringify(data);
                console.log(s);
                sidebar.setObject(s, "DATA");
              }
              console.log("createSidebarPane() callback");
              updateElementProperties();
        });
    }
Run Code Online (Sandbox Code Playgroud)

当我打开devtools时,我只看到我在"Token Details"面板的"DATA"子项目上设置的对象.

我究竟做错了什么?

google-chrome-extension google-chrome-devtools

0
推荐指数
1
解决办法
345
查看次数