我正在尝试使用签名链接将一个非常大的文件(超过 10G)上传到 S3。该链接是从服务器获取的,因此我没有 AWS 凭证或存储桶等。由于文件大于 5GB,因此我拥有的唯一方法是分段上传。
我的代码是这样的:
RequestBuilder request = RequestBuilder.post(uri);
request.addHeader("x-amz-server-side-encryption", "AES256");
request.addHeader("Content-Type", ct);
request.addHeader("Content-MD5", md5);
MultipartEntityBuilder entitybuilder = MultipartEntityBuilder.create();
entitybuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
entitybuilder.addBinaryBody("file", file);
HttpEntity mutiPartHttpEntity = entitybuilder.build();
request.setEntity(mutiPartHttpEntity);
HttpClient client = HttpClientBuilder.create().build();
HttpResponse response = client.execute(request.build());
String responseStr = EntityUtils.toString(response.getEntity());
Run Code Online (Sandbox Code Playgroud)
这失败了:
Caused by: java.net.SocketException: Connection reset
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:115)
at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
at sun.security.ssl.OutputRecord.writeBuffer(OutputRecord.java:431)
Run Code Online (Sandbox Code Playgroud)
我猜失败的发生是因为 AWS 允许每个连接最多 100 个请求,这会保持活动状态并尝试在单个连接上上传所有内容。有没有办法设置每个部分的大小和/或使 Apache HTTP 客户端不保持连接打开?
我不必使用 Apache HTTP 客户端。任何进行此上传的方式都是可以接受的,因此我还查看了 AmazonS3 客户端,但我能找到的所有示例都具有 AWS 凭证。如果我有签名链接,是否可以使用 AmazonS3 进行上传?
我想在index.html上为jhipster app添加自定义视图
我已经在navbar.html中创建了链接,并在路径src/main/webapp/scripts/app/custom/newView.html上添加了html文件
<a ui-sref="newView" data-toggle="collapse" data-target=".navbar-collapse.in">
<span class="glyphicon"></span>
<span class="hidden-sm">new view</span>
</a>
Run Code Online (Sandbox Code Playgroud)
当我点击链接时,它不起作用.可能它需要一个有角度的自定义路线,但我无法弄清楚如何创建它.我还该怎么办?
我正在重构一些旧的代码来使用enum's而不是String常量.我检讨我的代码时,我注意到,相比enum于String将不会抛出异常.我无法删除旧常量,因为其他项目仍在使用它们.
我不能覆盖等于因为JLS特别禁止这个:
Enum中的equals方法是一个最终方法,它只在其参数上调用super.equals并返回结果,从而执行身份比较.
代码如下所示:
public enum Gender{
MALE,
FEMALE
}
// Constants for genders
public static final String MALE = "Male";
public static final String FEMALE = "Female";
//following are obviously false
MALE.equals(Gender.MALE)
Gender.MALE.equals(MALE)
Run Code Online (Sandbox Code Playgroud)
对于常规对象,我可以覆盖equals并抛出异常,但对于我的示例,它将返回false.还有一个类似getGender的方法,它返回一个字符串,现在返回一个枚举,所以我可以错过一些地方,并将字符串与枚举进行比较
这很容易出错.FindBugs也没有报告任何错误.无论如何我可以防止这种情况吗?