I'm trying to write firebase storage rules that allows uploads with some specific extensions. I can't figure out how to write a rule for Libre office files. I've tried:
request.resource.contentType.matches('.odt') ||
request.resource.contentType.matches('.ods') ||
request.resource.contentType.matches('.odp') ||
and also:
request.resource.contentType.matches('application/odt') ||
request.resource.contentType.matches('application/ods') ||
request.resource.contentType.matches('application/odp') ||
None of these are working. How to write a rule to load Libre Office files?
According to this Libre Office repo, the MIME content types for those file extensions are:
MIME type | Extension |
---|---|
application/vnd.oasis.opendocument.text (IANA) |
.odt |
application/vnd.oasis.opendocument.spreadsheet (IANA) |
.ods |
application/vnd.oasis.opendocument.presentation (IANA) |
.odp |
These are "vendor tree" media types, thus they start with vnd.VENDOR.
. Some extensions, like application/json
are IANA defined types and do not have this prefix - you normally can't just throw an extension after the /
.
Your rules would then be:
request.resource.contentType.matches('application/vnd.oasis.opendocument.text') ||
request.resource.contentType.matches('application/vnd.oasis.opendocument.spreadsheet') ||
request.resource.contentType.matches('application/vnd.oasis.opendocument.presentation') ||