我使用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)
注意,"未找到!" 启用S3网站托管时,字符串来自桶属性上设置的错误文档.
我也尝试直接使用桶URL访问
HTTP://.s3.amazonaws.com/
除了错误文档而不是错误文档之外,我得到一个XML文档
我该如何解决这个问题?
我试图找出如何将成功的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) 我有点绑定(双关语).
我有一个运行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接口,客户端无法连接到它.
知道如何解决这个问题吗?
我有一个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图像,我没有这个问题.
简介:我有一个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) 我正在使用 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)
任何想法如何让这个工作?
我正在编写一个 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) 我正在尝试维护与代理的连接池。我的代码如下所示:
>>> 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 的用法。
我使用kafka作为消息传递平台.我需要向它发送一大堆消息.我正在搜索可以获取记录列表的批量api,但在kafka-clients工件中找不到它.
Java中的Kafka是否有批量生产者API?
我正在尝试修改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"子项目上设置的对象.
我究竟做错了什么?