Commit 78d15e09 authored by Jérome Perrin's avatar Jérome Perrin

Fix mimetypes usage in handlers

cloudooo includes its own mimes.types, so that it does not depend on
system configuration and behave the same regardless of the underlying
system, but the embedded mime.types have to be loaded explicitly by
calling utils.loadMimetypeList() by each python process before using
mimetypes module.

This was not done for ooo and x2t handlers, so in practice they were
depending on the system mime.types and the tests were written to expect
the mimetypes from debian 10, but with debian 11 some mimetypes became
different ( for example .bmp extension was guessed as image/x-ms-bmp [1]
on debian 10 and image/bmp on debian 11 [2]),

Theses changes:
 - include mime.types from debian 10 [3], but keeping the extra mimetypes
   for  only-office documents (docy, ppty and xlsy) that were added in
   0bb5fbdc (x2t: add handler, 2016-09-22)
 - change the handlers to call utils.loadMimetypeList(), it was only
   strictly necessary for ooo handler, but do it as well in x2t for
   consistency.
 - adjust some tests in testX2tHandler, because now that we have
   loaded mimetypes database the mimetype of xlsy is returned in
   metadata, so we have "application/x-asc-spreadsheet" and not just "xlsy"
 - add a few more test for xlsy and docy, because the magic based test
   just verify that they are zip files, these new tests also make a few
   assertions on the content of the zip files

[1]: https://salsa.debian.org/debian/mime-support/-/blob/debian/3.62/mime.types#L677
[2]: https://salsa.debian.org/debian/media-types/-/blob/4.0.0/mime.types#L1804
[3]: https://salsa.debian.org/debian/mime-support/-/blob/debian/3.62/mime.types
parent f0c555b5
Pipeline #21447 failed with stage
in 0 seconds
...@@ -41,7 +41,7 @@ from cloudooo.handler.ooo.mimemapper import mimemapper ...@@ -41,7 +41,7 @@ from cloudooo.handler.ooo.mimemapper import mimemapper
from cloudooo.handler.ooo.document import FileSystemDocument from cloudooo.handler.ooo.document import FileSystemDocument
from cloudooo.handler.ooo.monitor.timeout import MonitorTimeout from cloudooo.handler.ooo.monitor.timeout import MonitorTimeout
from cloudooo.handler.ooo.monitor import monitor_sleeping_time from cloudooo.handler.ooo.monitor import monitor_sleeping_time
from cloudooo.util import logger, parseContentType from cloudooo.util import logger, parseContentType, loadMimetypeList
from psutil import pid_exists from psutil import pid_exists
...@@ -66,6 +66,7 @@ class Handler(object): ...@@ -66,6 +66,7 @@ class Handler(object):
if not self.office_binary_path: if not self.office_binary_path:
self.office_binary_path = environ.get("office_binary_path") self.office_binary_path = environ.get("office_binary_path")
self._createDocument(base_folder_url, data, source_format) self._createDocument(base_folder_url, data, source_format)
loadMimetypeList()
def _createDocument(self, base_folder_url, data, source_format): def _createDocument(self, base_folder_url, data, source_format):
if source_format == 'csv': if source_format == 'csv':
......
...@@ -38,7 +38,7 @@ from zope.interface import implements ...@@ -38,7 +38,7 @@ from zope.interface import implements
from cloudooo.interfaces.handler import IHandler from cloudooo.interfaces.handler import IHandler
from cloudooo.file import File from cloudooo.file import File
from cloudooo.util import logger, unzip, parseContentType from cloudooo.util import logger, unzip, parseContentType, loadMimetypeList
from cloudooo.handler.ooo.handler import Handler as OOoHandler from cloudooo.handler.ooo.handler import Handler as OOoHandler
from zipfile import ZipFile from zipfile import ZipFile
...@@ -179,6 +179,7 @@ class Handler(object): ...@@ -179,6 +179,7 @@ class Handler(object):
self._init_kw = kw self._init_kw = kw
self.file = File(base_folder_url, data, source_format) self.file = File(base_folder_url, data, source_format)
self.environment = kw.get("env", {}) self.environment = kw.get("env", {})
loadMimetypeList()
def convert(self, destination_format=None, **kw): def convert(self, destination_format=None, **kw):
""" Convert the inputed file to output as format that were informed """ """ Convert the inputed file to output as format that were informed """
......
...@@ -101,7 +101,7 @@ class TestHandler(HandlerTestCase): ...@@ -101,7 +101,7 @@ class TestHandler(HandlerTestCase):
self.assertEquals(handler.getMetadata(), { self.assertEquals(handler.getMetadata(), {
u'CreationDate': u'31/01/2018 21:09:10', u'CreationDate': u'31/01/2018 21:09:10',
u'Keywords': [u'\u0442\u0435\u0441\u0442', u'\u0441\u0430\u0431\u0436\u0435\u043a\u0442'], u'Keywords': [u'\u0442\u0435\u0441\u0442', u'\u0441\u0430\u0431\u0436\u0435\u043a\u0442'],
'MIMEType': 'xlsy', 'MIMEType': 'application/x-asc-spreadsheet',
u'ModificationDate': u'31/01/2018 21:22:36', u'ModificationDate': u'31/01/2018 21:22:36',
u'PrintDate': u'00/00/0000 00:00:00', u'PrintDate': u'00/00/0000 00:00:00',
u'Subject': u'\u0432\u044b\u043a\u043b\u044e\u0447\u0438 \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440', u'Subject': u'\u0432\u044b\u043a\u043b\u044e\u0447\u0438 \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440',
...@@ -117,7 +117,7 @@ class TestHandler(HandlerTestCase): ...@@ -117,7 +117,7 @@ class TestHandler(HandlerTestCase):
"Keywords": "test keywords", "Keywords": "test keywords",
}) })
handler = Handler(self.tmp_url, new_mime_data, "xlsy", **self.kw) handler = Handler(self.tmp_url, new_mime_data, "xlsy", **self.kw)
self.assertEquals(handler.getMetadata(), {u'Keywords': u'test keywords', 'MIMEType': 'xlsy', u'Title': u'test title', u'Subject': u'test subject'}) self.assertEquals(handler.getMetadata(), {u'Keywords': u'test keywords', 'MIMEType': 'application/x-asc-spreadsheet', u'Title': u'test title', u'Subject': u'test subject'})
def testGetAllowedConversionFormatList(self): def testGetAllowedConversionFormatList(self):
"""Test all combination of mimetype """Test all combination of mimetype
......
...@@ -26,7 +26,11 @@ ...@@ -26,7 +26,11 @@
# See https://www.nexedi.com/licensing for rationale and options. # See https://www.nexedi.com/licensing for rationale and options.
# #
############################################################################## ##############################################################################
import io
import zipfile
from base64 import decodestring, encodestring
from os.path import join from os.path import join
from cloudooo.tests.cloudoooTestCase import TestCase from cloudooo.tests.cloudoooTestCase import TestCase
...@@ -35,6 +39,8 @@ class TestServer(TestCase): ...@@ -35,6 +39,8 @@ class TestServer(TestCase):
def ConversionScenarioList(self): def ConversionScenarioList(self):
return [ return [
# magic recognize xlsy and docy files as zip files, so the
# expected mime is application/zip
(join('data', 'test.xlsx'), "xlsx", "xlsy", "application/zip"), (join('data', 'test.xlsx'), "xlsx", "xlsy", "application/zip"),
(join('data', 'test.xlsy'), "xlsy", "xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"), (join('data', 'test.xlsy'), "xlsy", "xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
(join('data', 'test_with_image.docx'), "docx", "docy", "application/zip"), (join('data', 'test_with_image.docx'), "docx", "docy", "application/zip"),
...@@ -53,3 +59,31 @@ class TestServer(TestCase): ...@@ -53,3 +59,31 @@ class TestServer(TestCase):
(open(join('data', 'test.xlsx')).read(), 'xlsx', 'xyz'), (open(join('data', 'test.xlsx')).read(), 'xlsx', 'xyz'),
] ]
def test_xlsx_to_xlsy(self):
with open(join('data', 'test.xlsx')) as f:
xlsx_data = f.read()
xlsy_data = self.proxy.convertFile(
encodestring(xlsx_data),
'xlsx',
'xlsy',
False
)
self.assertEqual(
sorted(zipfile.ZipFile(io.BytesIO(decodestring(xlsy_data))).namelist()),
sorted(['Editor.xlsx', 'body.txt', 'metadata.json'])
)
def test_docx_to_docy(self):
with open(join('data', 'test_with_image.docx')) as f:
docx_data = f.read()
docy_data = self.proxy.convertFile(
encodestring(docx_data),
'docx',
'docy',
False
)
self.assertEqual(
sorted(zipfile.ZipFile(io.BytesIO(decodestring(docy_data))).namelist()),
sorted(['body.txt', 'media/image1.png', 'metadata.json'])
)
###############################################################################
# MIME types database for cloudooo
# #
# Video ###############################################################################
#
application/ogg ogv
application/ogg ogg application/activemessage
application/octet-stream webm application/andrew-inset ez
application/x-shockwave-flash flv application/annodex anx
application/octet-stream mkv application/applefile
application/octet-stream mpg application/atom+xml atom
application/octet-stream mpeg application/atomcat+xml atomcat
video/3gpp 3gp application/atomicmail
video/x-msvideo avi application/atomserv+xml atomsrv
video/mp4 mp4 application/batch-SMTP
video/ogg ogv application/bbolin lin
video/webm webm application/beep+xml
video/x-matroska mkv application/cals-1840
video/mpeg mpg application/commonground
video/mpeg mpeg application/cu-seeme cu
video/avi avi application/cybercash
video/mp4 mp4 application/davmount+xml davmount
video/x-ms-wmv wmv application/dca-rft
video/quicktime mov application/dec-dx
# application/dicom dcm
# Text application/docbook+xml
# application/dsptype tsp
application/dvcs
application/ecmascript es
application/edi-consent
application/edi-x12
application/edifact
application/eshop
application/font-sfnt otf ttf
application/font-tdpfr pfr
application/font-woff woff
application/futuresplash spl
application/ghostview
application/gzip gz
application/hta hta
application/http
application/hyperstudio
application/iges
application/index
application/index.cmd
application/index.obj
application/index.response
application/index.vnd
application/iotp
application/ipp
application/isup
application/java-archive jar
application/java-serialized-object ser
application/java-vm class
application/javascript js
application/json json
application/m3g m3g
application/mac-binhex40 hqx
application/mac-compactpro cpt
application/macwriteii
application/marc
application/mathematica nb nbp
application/mbox mbox
application/ms-tnef
application/msaccess mdb
application/msword doc dot
application/mxf mxf
application/news-message-id
application/news-transmission
application/ocsp-request
application/ocsp-response
application/octet-stream bin deploy msu msp
application/oda oda
application/oebps-package+xml opf
application/ogg ogx
application/onenote one onetoc2 onetmp onepkg
application/parityfec
application/pdf pdf
application/pgp-encrypted pgp
application/pgp-keys key
application/pgp-signature sig
application/pics-rules prf
application/pkcs10
application/pkcs7-mime
application/pkcs7-signature
application/pkix-cert
application/pkix-crl
application/pkixcmp
application/postscript ps ai eps epsi epsf eps2 eps3
application/prs.alvestrand.titrax-sheet
application/prs.cww
application/prs.nprend
application/qsig
application/rar rar
application/rdf+xml rdf
application/remote-printing
application/riscos
application/rtf rtf
application/sdp
application/set-payment
application/set-payment-initiation
application/set-registration
application/set-registration-initiation
application/sgml
application/sgml-open-catalog
application/sieve
application/sla stl
application/slate
application/smil+xml smi smil
application/timestamp-query
application/timestamp-reply
application/vemmi
application/whoispp-query
application/whoispp-response
application/wita
application/x400-bp
application/xhtml+xml xhtml xht
application/xml xml xsd
application/xml-dtd
application/xml-external-parsed-entity
application/xslt+xml xsl xslt
application/xspf+xml xspf
application/zip zip
application/vnd.3M.Post-it-Notes
application/vnd.accpac.simply.aso
application/vnd.accpac.simply.imp
application/vnd.acucobol
application/vnd.aether.imp
application/vnd.android.package-archive apk
application/vnd.anser-web-certificate-issue-initiation
application/vnd.anser-web-funds-transfer-initiation
application/vnd.audiograph
application/vnd.bmi
application/vnd.businessobjects
application/vnd.canon-cpdl
application/vnd.canon-lips
application/vnd.cinderella cdy
application/vnd.claymore
application/vnd.commerce-battelle
application/vnd.commonspace
application/vnd.comsocaller
application/vnd.contact.cmsg
application/vnd.cosmocaller
application/vnd.ctc-posml
application/vnd.cups-postscript
application/vnd.cups-raster
application/vnd.cups-raw
application/vnd.cybank
application/vnd.debian.binary-package deb ddeb udeb
application/vnd.dna
application/vnd.dpgraph
application/vnd.dxr
application/vnd.ecdis-update
application/vnd.ecowin.chart
application/vnd.ecowin.filerequest
application/vnd.ecowin.fileupdate
application/vnd.ecowin.series
application/vnd.ecowin.seriesrequest
application/vnd.ecowin.seriesupdate
application/vnd.enliven
application/vnd.epson.esf
application/vnd.epson.msf
application/vnd.epson.quickanime
application/vnd.epson.salt
application/vnd.epson.ssf
application/vnd.ericsson.quickcall
application/vnd.eudora.data
application/vnd.fdf
application/vnd.ffsns
application/vnd.flographit
application/vnd.font-fontforge-sfd sfd
application/vnd.framemaker
application/vnd.fsc.weblaunch
application/vnd.fujitsu.oasys
application/vnd.fujitsu.oasys2
application/vnd.fujitsu.oasys3
application/vnd.fujitsu.oasysgp
application/vnd.fujitsu.oasysprs
application/vnd.fujixerox.ddd
application/vnd.fujixerox.docuworks
application/vnd.fujixerox.docuworks.binder
application/vnd.fut-misnet
application/vnd.google-earth.kml+xml kml
application/vnd.google-earth.kmz kmz
application/vnd.grafeq
application/vnd.groove-account
application/vnd.groove-identity-message
application/vnd.groove-injector
application/vnd.groove-tool-message
application/vnd.groove-tool-template
application/vnd.groove-vcard
application/vnd.hhe.lesson-player
application/vnd.hp-HPGL
application/vnd.hp-PCL
application/vnd.hp-PCLXL
application/vnd.hp-hpid
application/vnd.hp-hps
application/vnd.httphone
application/vnd.hzn-3d-crossword
application/vnd.ibm.MiniPay
application/vnd.ibm.afplinedata
application/vnd.ibm.modcap
application/vnd.informix-visionary
application/vnd.intercon.formnet
application/vnd.intertrust.digibox
application/vnd.intertrust.nncp
application/vnd.intu.qbo
application/vnd.intu.qfx
application/vnd.irepository.package+xml
application/vnd.is-xpr
application/vnd.japannet-directory-service
application/vnd.japannet-jpnstore-wakeup
application/vnd.japannet-payment-wakeup
application/vnd.japannet-registration
application/vnd.japannet-registration-wakeup
application/vnd.japannet-setstore-wakeup
application/vnd.japannet-verification
application/vnd.japannet-verification-wakeup
application/vnd.koan
application/vnd.lotus-1-2-3
application/vnd.lotus-approach
application/vnd.lotus-freelance
application/vnd.lotus-notes
application/vnd.lotus-organizer
application/vnd.lotus-screencam
application/vnd.lotus-wordpro
application/vnd.mcd
application/vnd.mediastation.cdkey
application/vnd.meridian-slingshot
application/vnd.mif
application/vnd.minisoft-hp3000-save
application/vnd.mitsubishi.misty-guard.trustweb
application/vnd.mobius.daf
application/vnd.mobius.dis
application/vnd.mobius.msl
application/vnd.mobius.plc
application/vnd.mobius.txf
application/vnd.motorola.flexsuite
application/vnd.motorola.flexsuite.adsi
application/vnd.motorola.flexsuite.fis
application/vnd.motorola.flexsuite.gotap
application/vnd.motorola.flexsuite.kmr
application/vnd.motorola.flexsuite.ttc
application/vnd.motorola.flexsuite.wem
application/vnd.mozilla.xul+xml xul
application/vnd.ms-artgalry
application/vnd.ms-asf
application/vnd.ms-excel xls xlb xlt
application/vnd.ms-excel.addin.macroEnabled.12 xlam
application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb
application/vnd.ms-excel.sheet.macroEnabled.12 xlsm
application/vnd.ms-excel.template.macroEnabled.12 xltm
application/vnd.ms-fontobject eot
application/vnd.ms-lrm
application/vnd.ms-officetheme thmx
application/vnd.ms-pki.seccat cat
#application/vnd.ms-pki.stl stl
application/vnd.ms-powerpoint ppt pps
application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam
application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm
application/vnd.ms-powerpoint.slide.macroEnabled.12 sldm
application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm
application/vnd.ms-powerpoint.template.macroEnabled.12 potm
application/vnd.ms-project
application/vnd.ms-tnef
application/vnd.ms-word.document.macroEnabled.12 docm
application/vnd.ms-word.template.macroEnabled.12 dotm
application/vnd.ms-works
application/vnd.mseq
application/vnd.msign
application/vnd.music-niff
application/vnd.musician
application/vnd.netfpx
application/vnd.noblenet-directory
application/vnd.noblenet-sealer
application/vnd.noblenet-web
application/vnd.novadigm.EDM
application/vnd.novadigm.EDX
application/vnd.novadigm.EXT
application/vnd.oasis.opendocument.chart odc
application/vnd.oasis.opendocument.database odb
application/vnd.oasis.opendocument.formula odf
application/vnd.oasis.opendocument.graphics odg
application/vnd.oasis.opendocument.graphics-template otg
application/vnd.oasis.opendocument.image odi
application/vnd.oasis.opendocument.presentation odp application/vnd.oasis.opendocument.presentation odp
application/vnd.oasis.opendocument.presentation-template otp
application/vnd.oasis.opendocument.spreadsheet ods application/vnd.oasis.opendocument.spreadsheet ods
application/vnd.oasis.opendocument.spreadsheet-template ots
application/vnd.oasis.opendocument.text odt application/vnd.oasis.opendocument.text odt
application/vnd.oasis.opendocument.graphics odg application/vnd.oasis.opendocument.text-master odm
application/vnd.stardivision.chart sds application/vnd.oasis.opendocument.text-template ott
application/vnd.oasis.opendocument.text-web oth
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
application/vnd.openxmlformats-officedocument.presentationml.slide sldx
application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
application/vnd.openxmlformats-officedocument.presentationml.template potx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
application/vnd.osa.netdeploy
application/vnd.palm
application/vnd.pg.format
application/vnd.pg.osasli
application/vnd.powerbuilder6
application/vnd.powerbuilder6-s
application/vnd.powerbuilder7
application/vnd.powerbuilder7-s
application/vnd.powerbuilder75
application/vnd.powerbuilder75-s
application/vnd.previewsystems.box
application/vnd.publishare-delta-tree
application/vnd.pvi.ptid1
application/vnd.pwg-xhtml-print+xml
application/vnd.rapid
application/vnd.rim.cod cod
application/vnd.s3sms
application/vnd.seemail
application/vnd.shana.informed.formdata
application/vnd.shana.informed.formtemplate
application/vnd.shana.informed.interchange
application/vnd.shana.informed.package
application/vnd.smaf mmf
application/vnd.sss-cod
application/vnd.sss-dtf
application/vnd.sss-ntf
application/vnd.stardivision.calc sdc application/vnd.stardivision.calc sdc
application/vnd.stardivision.writer sdw application/vnd.stardivision.chart sds
application/vnd.stardivision.writer-global sgl
application/vnd.stardivision.draw sda application/vnd.stardivision.draw sda
application/vnd.stardivision.impress sdd application/vnd.stardivision.impress sdd
application/vnd.stardivision.math sdf application/vnd.stardivision.math sdf
application/vnd.sun.xml.writer sxw application/vnd.stardivision.writer sdw
application/vnd.sun.xml.writer.template stw application/vnd.stardivision.writer-global sgl
application/vnd.sun.xml.writer.global sxg application/vnd.street-stream
application/vnd.sun.xml.calc sxc application/vnd.sun.xml.calc sxc
application/vnd.sun.xml.calc.template stc application/vnd.sun.xml.calc.template stc
application/vnd.sun.xml.impress sxi
application/vnd.sun.xml.impress.template sti
application/vnd.sun.xml.draw sxd application/vnd.sun.xml.draw sxd
application/vnd.sun.xml.draw.template std application/vnd.sun.xml.draw.template std
application/vnd.sun.xml.impress sxi
application/vnd.sun.xml.impress.template sti
application/vnd.sun.xml.math sxm application/vnd.sun.xml.math sxm
application/vnd.oasis.opendocument.text-template ott application/vnd.sun.xml.writer sxw
application/vnd.oasis.opendocument.text-web oth application/vnd.sun.xml.writer.global sxg
application/vnd.oasis.opendocument.text-master odm application/vnd.sun.xml.writer.template stw
application/vnd.oasis.opendocument.graphics-template otg application/vnd.svd
application/vnd.oasis.opendocument.presentation-template otp application/vnd.swiftview-ics
application/vnd.oasis.opendocument.spreadsheet-template ots application/vnd.symbian.install sis
application/vnd.oasis.opendocument.chart odc application/vnd.tcpdump.pcap cap pcap
application/vnd.oasis.opendocument.formula odf application/vnd.triscape.mxs
application/vnd.oasis.opendocument.database odb application/vnd.trueapp
application/vnd.oasis.opendocument.image odi application/vnd.truedoc
application/vnd.ms-word.document.macroEnabled.12 docm application/vnd.tve-trigger
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx application/vnd.ufdl
application/x-asc-text docy application/vnd.uplanet.alert
application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx application/vnd.uplanet.alert-wbxml
application/vnd.ms-powerpoint.template.macroEnabled.12 potm application/vnd.uplanet.bearer-choice
application/vnd.openxmlformats-officedocument.presentationml.template potx application/vnd.uplanet.bearer-choice-wbxml
application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam application/vnd.uplanet.cacheop
application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm application/vnd.uplanet.cacheop-wbxml
application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx application/vnd.uplanet.channel
application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm application/vnd.uplanet.channel-wbxml
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx application/vnd.uplanet.list
application/x-asc-presentation ppty application/vnd.uplanet.list-wbxml
application/vnd.ms-excel.addin.macroEnabled.12 xlam application/vnd.uplanet.listcmd
application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb application/vnd.uplanet.listcmd-wbxml
application/vnd.ms-excel.sheet.macroEnabled.12 xlsm application/vnd.uplanet.signal
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx application/vnd.vcx
application/x-asc-spreadsheet xlsy application/vnd.vectorworks
application/vnd.ms-excel.template.macroEnabled.12 xltm application/vnd.vidsoft.vidconference
application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx application/vnd.visio vsd vst vsw vss
application/x-msmetafile wmf application/vnd.vividence.scriptfile
application/wmf wmf application/vnd.wap.sic
application/vnd.ms-excel xlt application/vnd.wap.slc
application/rtf rtf application/vnd.wap.wbxml wbxml
application/x-rtf rtf application/vnd.wap.wmlc wmlc
text/rtf rtf application/vnd.wap.wmlscriptc wmlsc
text/comma-separated-values csv application/vnd.webturbo
text/csv csv application/vnd.wordperfect wpd
application/csv csv application/vnd.wordperfect5.1 wp5
application/x-openoffice-gdimetafile svm application/vnd.wrq-hp3000-labelled
application/emf emf application/vnd.wt.stf
application/x-emf emf application/vnd.xara
application/octet-stream met application/vnd.xfdl
# application/vnd.yellowriver-custom-menu
# Image application/zlib
# application/x-123 wk
application/x-7z-compressed 7z
application/x-abiword abw
application/x-apple-diskimage dmg
application/x-bcpio bcpio
application/x-bittorrent torrent
application/x-cab cab
application/x-cbr cbr
application/x-cbz cbz
application/x-cdf cdf cda
application/x-cdlink vcd
application/x-chess-pgn pgn
application/x-comsol mph
application/x-core
application/x-cpio cpio
application/x-csh csh
application/x-debian-package deb udeb
application/x-director dcr dir dxr
application/x-dms dms
application/x-doom wad
application/x-dvi dvi
application/x-executable
application/x-font pfa pfb gsf
application/x-font-pcf pcf pcf.Z
application/x-freemind mm
application/x-futuresplash spl
application/x-ganttproject gan
application/x-gnumeric gnumeric
application/x-go-sgf sgf
application/x-graphing-calculator gcf
application/x-gtar gtar
application/x-gtar-compressed tgz taz
application/x-hdf hdf
#application/x-httpd-eruby rhtml
#application/x-httpd-php phtml pht php
#application/x-httpd-php-source phps
#application/x-httpd-php3 php3
#application/x-httpd-php3-preprocessed php3p
#application/x-httpd-php4 php4
#application/x-httpd-php5 php5
application/x-hwp hwp
application/x-ica ica
application/x-info info
application/x-internet-signup ins isp
application/x-iphone iii
application/x-iso9660-image iso
application/x-jam jam
application/x-java-applet
application/x-java-bean
application/x-java-jnlp-file jnlp
application/x-jmol jmz
application/x-kchart chrt
application/x-kdelnk
application/x-killustrator kil
application/x-koan skp skd skt skm
application/x-kpresenter kpr kpt
application/x-kspread ksp
application/x-kword kwd kwt
application/x-latex latex
application/x-lha lha
application/x-lyx lyx
application/x-lzh lzh
application/x-lzx lzx
application/x-maker frm maker frame fm fb book fbdoc
application/x-mif mif
application/x-mpegURL m3u8
application/x-ms-application application
application/x-ms-manifest manifest
application/x-ms-wmd wmd
application/x-ms-wmz wmz
application/x-msdos-program com exe bat dll
application/x-msi msi
application/x-netcdf nc
application/x-ns-proxy-autoconfig pac
application/x-nwc nwc
application/x-object o
application/x-oz-application oza
application/x-pkcs7-certreqresp p7r
application/x-pkcs7-crl crl
application/x-python-code pyc pyo
application/x-qgis qgs shp shx
application/x-quicktimeplayer qtl
application/x-rdp rdp
application/x-redhat-package-manager rpm
application/x-rss+xml rss
application/x-ruby rb
application/x-rx
application/x-scilab sci sce
application/x-scilab-xcos xcos
application/x-sh sh
application/x-shar shar
application/x-shellscript
application/x-shockwave-flash swf swfl
application/x-silverlight scr
application/x-sql sql
application/x-stuffit sit sitx
application/x-sv4cpio sv4cpio
application/x-sv4crc sv4crc
application/x-tar tar
application/x-tcl tcl
application/x-tex-gf gf
application/x-tex-pk pk
application/x-texinfo texinfo texi
application/x-trash ~ % bak old sik
application/x-troff t tr roff
application/x-troff-man man
application/x-troff-me me
application/x-troff-ms ms
application/x-ustar ustar
application/x-videolan
application/x-wais-source src
application/x-wingz wz
application/x-x509-ca-cert crt
application/x-xcf xcf
application/x-xfig fig
application/x-xpinstall xpi
application/x-xz xz
audio/32kadpcm
audio/3gpp
audio/amr amr
audio/amr-wb awb
audio/annodex axa
audio/basic au snd
audio/csound csd orc sco
audio/flac flac
audio/g.722.1
audio/l16
audio/midi mid midi kar
audio/mp4a-latm
audio/mpa-robust
audio/mpeg mpga mpega mp2 mp3 m4a
audio/mpegurl m3u
audio/ogg oga ogg opus spx
audio/parityfec
audio/prs.sid sid
audio/telephone-event
audio/tone
audio/vnd.cisco.nse
audio/vnd.cns.anp1
audio/vnd.cns.inf1
audio/vnd.digital-winds
audio/vnd.everad.plj
audio/vnd.lucent.voice
audio/vnd.nortel.vbk
audio/vnd.nuera.ecelp4800
audio/vnd.nuera.ecelp7470
audio/vnd.nuera.ecelp9600
audio/vnd.octel.sbc
audio/vnd.qcelp
audio/vnd.rhetorex.32kadpcm
audio/vnd.vmx.cvsd
audio/x-aiff aif aiff aifc
audio/x-gsm gsm
audio/x-mpegurl m3u
audio/x-ms-wma wma
audio/x-ms-wax wax
audio/x-pn-realaudio-plugin
audio/x-pn-realaudio ra rm ram
audio/x-realaudio ra
audio/x-scpls pls
audio/x-sd2 sd2
audio/x-wav wav
chemical/x-alchemy alc
chemical/x-cache cac cache
chemical/x-cache-csf csf
chemical/x-cactvs-binary cbin cascii ctab
chemical/x-cdx cdx
chemical/x-cerius cer
chemical/x-chem3d c3d
chemical/x-chemdraw chm
chemical/x-cif cif
chemical/x-cmdf cmdf
chemical/x-cml cml
chemical/x-compass cpa
chemical/x-crossfire bsd
chemical/x-csml csml csm
chemical/x-ctx ctx
chemical/x-cxf cxf cef
#chemical/x-daylight-smiles smi
chemical/x-embl-dl-nucleotide emb embl
chemical/x-galactic-spc spc
chemical/x-gamess-input inp gam gamin
chemical/x-gaussian-checkpoint fch fchk
chemical/x-gaussian-cube cub
chemical/x-gaussian-input gau gjc gjf
chemical/x-gaussian-log gal
chemical/x-gcg8-sequence gcg
chemical/x-genbank gen
chemical/x-hin hin
chemical/x-isostar istr ist
chemical/x-jcamp-dx jdx dx
chemical/x-kinemage kin
chemical/x-macmolecule mcm
chemical/x-macromodel-input mmd mmod
chemical/x-mdl-molfile mol
chemical/x-mdl-rdfile rd
chemical/x-mdl-rxnfile rxn
chemical/x-mdl-sdfile sd sdf
chemical/x-mdl-tgf tgf
#chemical/x-mif mif
chemical/x-mmcif mcif
chemical/x-mol2 mol2
chemical/x-molconn-Z b
chemical/x-mopac-graph gpt
chemical/x-mopac-input mop mopcrt mpc zmt
chemical/x-mopac-out moo
chemical/x-mopac-vib mvb
chemical/x-ncbi-asn1 asn
chemical/x-ncbi-asn1-ascii prt ent
chemical/x-ncbi-asn1-binary val aso
chemical/x-ncbi-asn1-spec asn
chemical/x-pdb pdb ent
chemical/x-rosdal ros
chemical/x-swissprot sw
chemical/x-vamas-iso14976 vms
chemical/x-vmd vmd
chemical/x-xtel xtel
chemical/x-xyz xyz
image/cgm
image/g3fax
image/gif gif image/gif gif
image/ief ief image/ief ief
image/jpeg jpeg image/jp2 jp2 jpg2
image/jpeg jpg image/jpeg jpeg jpg jpe
image/bmp bmp image/jpm jpm
image/cis-cod cod image/jpx jpx jpf
image/pipeg jfif image/naplps
image/pcx pcx
image/png png image/png png
image/svg+xml svg image/prs.btif
image/tiff tif image/prs.pti
image/tiff tiff image/svg+xml svg svgz
image/x-pict pct image/tiff tiff tif
image/vnd.cns.inf2
image/vnd.djvu djvu djv
image/vnd.dwg
image/vnd.dxf
image/vnd.fastbidsheet
image/vnd.fpx
image/vnd.fst
image/vnd.fujixerox.edmics-mmr
image/vnd.fujixerox.edmics-rlc
image/vnd.microsoft.icon ico
image/vnd.mix
image/vnd.net-fpx
image/vnd.svf
image/vnd.wap.wbmp wbmp
image/vnd.xiff
image/x-canon-cr2 cr2
image/x-canon-crw crw
image/x-cmu-raster ras image/x-cmu-raster ras
image/x-cmx cmx image/x-coreldraw cdr
image/x-icon ico image/x-coreldrawpattern pat
image/x-coreldrawtemplate cdt
image/x-corelphotopaint cpt
image/x-epson-erf erf
image/x-icon
image/x-jg art
image/x-jng jng
image/x-ms-bmp bmp
image/x-nikon-nef nef
image/x-olympus-orf orf
image/x-photoshop psd
image/x-portable-anymap pnm image/x-portable-anymap pnm
image/x-portable-bitmap pbm image/x-portable-bitmap pbm
image/x-portable-graymap pgm image/x-portable-graymap pgm
...@@ -112,8 +658,165 @@ image/x-rgb ...@@ -112,8 +658,165 @@ image/x-rgb
image/x-xbitmap xbm image/x-xbitmap xbm
image/x-xpixmap xpm image/x-xpixmap xpm
image/x-xwindowdump xwd image/x-xwindowdump xwd
#
# Audio inode/chardevice
# inode/blockdevice
audio/mp4 mp4 inode/directory-locked
audio/mp3 mp3 inode/directory
inode/fifo
inode/socket
message/delivery-status
message/disposition-notification
message/external-body
message/http
message/s-http
message/news
message/partial
message/rfc822 eml
model/iges igs iges
model/mesh msh mesh silo
model/vnd.dwf
model/vnd.flatland.3dml
model/vnd.gdl
model/vnd.gs-gdl
model/vnd.gtw
model/vnd.mts
model/vnd.vtu
model/vrml wrl vrml
model/x3d+vrml x3dv
model/x3d+xml x3d
model/x3d+binary x3db
multipart/alternative
multipart/appledouble
multipart/byteranges
multipart/digest
multipart/encrypted
multipart/form-data
multipart/header-set
multipart/mixed
multipart/parallel
multipart/related
multipart/report
multipart/signed
multipart/voice-message
text/cache-manifest appcache
text/calendar ics icz
text/css css
text/csv csv
text/directory
text/english
text/enriched
text/h323 323
text/html html htm shtml
text/iuls uls
text/mathml mml
text/markdown md markdown
text/parityfec
text/plain asc txt text pot brf srt
text/prs.lines.tag
text/rfc822-headers
text/richtext rtx
text/rtf
text/scriptlet sct wsc
text/t140
text/texmacs tm
text/tab-separated-values tsv
text/turtle ttl
text/uri-list
text/vcard vcf vcard
text/vnd.abc
text/vnd.curl
text/vnd.debian.copyright
text/vnd.DMClientScript
text/vnd.flatland.3dml
text/vnd.fly
text/vnd.fmi.flexstor
text/vnd.in3d.3dml
text/vnd.in3d.spot
text/vnd.IPTC.NewsML
text/vnd.IPTC.NITF
text/vnd.latex-z
text/vnd.motorola.reflex
text/vnd.ms-mediapackage
text/vnd.sun.j2me.app-descriptor jad
text/vnd.wap.si
text/vnd.wap.sl
text/vnd.wap.wml wml
text/vnd.wap.wmlscript wmls
text/x-bibtex bib
text/x-boo boo
text/x-c++hdr h++ hpp hxx hh
text/x-c++src c++ cpp cxx cc
text/x-chdr h
text/x-component htc
text/x-crontab
text/x-csh csh
text/x-csrc c
text/x-dsrc d
text/x-diff diff patch
text/x-haskell hs
text/x-java java
text/x-lilypond ly
text/x-literate-haskell lhs
text/x-makefile
text/x-moc moc
text/x-pascal p pas
text/x-pcs-gcd gcd
text/x-perl pl pm
text/x-python py
text/x-scala scala
text/x-server-parsed-html
text/x-setext etx
text/x-sfv sfv
text/x-sh sh
text/x-tcl tcl tk
text/x-tex tex ltx sty cls
text/x-vcalendar vcs
video/3gpp 3gp
video/annodex axv
video/dl dl
video/dv dif dv
video/fli fli
video/gl gl
video/mpeg mpeg mpg mpe
video/MP2T ts
video/mp4 mp4
video/quicktime qt mov
video/mp4v-es
video/ogg ogv
video/parityfec
video/pointer
video/webm webm
video/vnd.fvt
video/vnd.motorola.video
video/vnd.motorola.videop
video/vnd.mpegurl mxu
video/vnd.mts
video/vnd.nokia.interleaved-multimedia
video/vnd.vivo
video/x-flv flv
video/x-la-asf lsf lsx
video/x-mng mng
video/x-ms-asf asf asx
video/x-ms-wm wm
video/x-ms-wmv wmv
video/x-ms-wmx wmx
video/x-ms-wvx wvx
video/x-msvideo avi
video/x-sgi-movie movie
video/x-matroska mpv mkv
x-conference/x-cooltalk ice
x-epoc/x-sisx-app sisx
x-world/x-vrml vrm vrml wrl
# onlyoffice
application/x-asc-spreadsheet xlsy
application/x-asc-text docy
application/x-asc-presentation ppty
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment