Dosyaları bir Amazon s3 kovasına yüklüyorum ve InputStream ve dosyanın MIME Türünü içeren bir dize, ancak orijinal dosya adına erişemiyorum. Dosyayı S3'e basmadan önce dosya adını ve uzantısını oluşturmak bana kalmış. MIME Türünden kullanılabilecek uygun uzantıyı belirlemek için bir kitaplık veya uygun bir yol var mı?Java'da MIME Türünden uygun dosya uzantısı nasıl belirlenir
Apache Tika kitaplığına bazı başvurular gördüm, ancak bu overkill gibi görünüyor ve henüz dosya uzantılarını başarıyla algılayamadı. Bu kod çalışması gerekir gibi görünüyor toplamak mümkün oldum ama commentors bazı belirttiğimiz gibi benim tipim değişkeni "image/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
}
Dosya uzantısı ayarlamanız gerektiğinden emin misiniz? MIME türünü biliyorsanız, S3'e uygun "İçerik Tipi" ile yükleyebilir ve uzantı (genellikle) alakasız hale gelir. – willglynn
Haklısınız, daha yeni kontrol ettim ve S3 için ObjectMetadata'daki Content-Type özelliğini ayarlamak benim durumumdaki hile yapar. Sorunun cevabını hala bilmek isterdim, gelecekte işe yarayabilir gibi görünüyor. – rphutchinson
Yeterince adil. Dosya uzantıları için MIME türlerinden One True Mapping ™ bulunmuyor - bazı türlerde birden fazla uzantı var, bazı uzantıların birden fazla türü var. Bu nedenle, bağımsız olarak ikna olabilecek bir veri deposu kullandığımda, yalnızca bildiğim şeyi saklamaya çalışıyorum ve tahmin etmekten kaçının. – willglynn