Amazon S3 버킷에 파일을 업로드하고 원본 파일 이름이 아닌 파일의 MIME 유형을 포함하는 InputStream 및 String에 액세스 할 수 있습니다. 파일을 S3까지 밀어 넣기 전에 실제로 파일 이름과 확장명을 만드는 것은 나에게 달려있다. 라이브러리가 있거나 MIME 형식에서 사용할 적절한 확장을 결정하는 편리한 방법이 있습니까?Java에서 MIME 유형의 적절한 파일 확장자를 결정하는 방법
Apache Tika 라이브러리에 대한 참조가 있지만 과장된 것처럼 보입니다. 아직 파일 확장명을 감지하지 못했습니다. 이 코드가 작동합니다 것 같다 수집 할 수있었습니다,하지만 commentors의 일부가 지적했듯이 내 타입 변수 "이미지/JPEG"
MimeType mimeType = null;
try {
mimeType = new MimeTypes().forName(type);
} catch (MimeTypeException e) {
Logger.error("Couldn't Detect Mime Type for type: " + type, e);
}
if (mimeType != null) {
String extension = mimeType.getExtension();
//do something with the extension
}
파일 확장자를 설정해야합니까? MIME 타입을 알고 있다면, 적당한'Content-Type'으로 S3에 업로드 할 수 있으며 확장자 (보통)는 무의미해진다. – willglynn
맞습니다. 방금 확인했는데 S3 용 ObjectMetadata에서 Content-Type을 설정하는 것이 제 경우의 트릭입니다. 나는 여전히 질문에 대한 답을 알고 싶다. 미래에 도움이 될 수있는 것처럼 보인다. – rphutchinson
충분합니다. 파일 확장자에는 MIME 형식 중 하나의 True Mapping ™이 없습니다. 여러 유형의 확장자가 있고 일부 확장자는 여러 유형이 있습니다. 따라서 두 가지를 독립적으로 유지할 수있는 데이터 저장소를 사용할 때 나는 알고있는 것만 저장하려고합니다. 추측을 삼가하십시오. – willglynn