【发布时间】:2018-03-25 12:07:41
【问题描述】:
我正在尝试使用预签名 URL 将不同 MIME 类型的文件上传到 AWS S3。我可以在 S3 上看到文档,但内容不合适。它是 0 字节或小于我正在尝试的每个文件的预期大小。
这是代码,请告诉我缺少什么:
public static void main(String[] args) {
URLConnection urlconnection = null;
try {
File file = new File(File_Path);
if (isEncoded == "false") {
URL obj = new URL(Upload_Url);
urlconnection = obj.openConnection();
} else {
try {
URI uri = new URI(Upload_Url);
URL url = uri.toURL();
urlconnection = url.openConnection();
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
urlconnection.setDoOutput(true);
urlconnection.setDoInput(true);
if (urlconnection instanceof HttpURLConnection) {
((HttpURLConnection) urlconnection).setRequestMethod("PUT");
((HttpURLConnection) urlconnection).setRequestProperty("Content-Type", Content_Type);
((HttpURLConnection) urlconnection).connect();
}
BufferedOutputStream bos = new BufferedOutputStream(urlconnection.getOutputStream());
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
int i;
// read byte by byte until end of stream
while ((i = bis.read()) > 0) {
bos.write(i);
}
bis.close();
bos.close();
} catch (Exception e) {
e.printStackTrace();
}
【问题讨论】:
-
是内容还是大小?有什么例外吗?
-
返回了什么 HTTP 状态码?
-
文件大小不合适。因此,当我下载文件时,它已损坏。
-
上传成功,收到200
-
你怎么知道这个代码的 HTTP 状态代码是什么?
标签: java http file-upload put