Fix mimetype GPX OwnCloud
Suite à des mises à jour de OwnCloud
, les fichiers peuvent ne plus être reconnus par l'application. Ils sont alors téléchargés sur le poste de l'utilisateur au lieu de s'ouvrir sur le fond de carte.
Cet article présente comment manipuler les données afin de restaurer la fonctionnalité sur les fichiers existants.
Votre avis
Nobody voted on this yet
|
|
Etude schéma
Dans la documentation du plugin, il est mentionné qu'il est possible de purger la table oc_filecache
, afin de recréer les données lors de l'accès au fichier, notament la référence vers le type mime.
Attention La purge de la table peut entraîner des dysfonctionnements, comme la suppression des partages.
Mais cela donne une bonne indication sur les tables à étudier.
Table oc_mimetypes
mysql> describe oc_mimetypes; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | mimetype | varchar(255) | NO | UNI | | | +----------+--------------+------+-----+---------+----------------+
Cette table contient l'ensemble des types mime exploités sur les fichiers.
Table oc_filecache
mysql> describe oc_filecache; +------------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+---------------+------+-----+---------+----------------+ | fileid | bigint(20) | NO | PRI | NULL | auto_increment | | storage | int(11) | NO | MUL | 0 | | | path | varchar(4000) | YES | | NULL | | | path_hash | varchar(32) | NO | | | | | parent | bigint(20) | NO | MUL | 0 | | | name | varchar(250) | YES | | NULL | | | mimetype | int(11) | NO | | 0 | | | mimepart | int(11) | NO | | 0 | | | size | bigint(20) | NO | | 0 | | | mtime | bigint(20) | NO | | 0 | | | storage_mtime | bigint(20) | NO | | 0 | | | encrypted | int(11) | NO | | 0 | | | unencrypted_size | bigint(20) | NO | | 0 | | | etag | varchar(40) | YES | | NULL | | | permissions | int(11) | YES | | 0 | | | checksum | varchar(255) | YES | | NULL | | +------------------+---------------+------+-----+---------+----------------+
Dans celle-ci, la colonne mimetype
contient la valeur de la colonne id
de la table oc_mimetypes
correspond au type mime utilisé.
Il suffit donc d'identifier les fichiers à mettre à jour, avec les colonnes path
et name
par exemple, et de modifier la valeur de la colonne id
avec l'identifiant pour la valeur application/gpx
pour la colonne mimetype
dans la table oc_mimetypes
.
Exemple mise à jour
Dans le cadre de cette installation, une mise à jour en masse a été nécessaire. L'objectif était de corriger le type mime pour tous les fichiers dont le nom se terminait par l'extension gpx
.
L'étude du précédent paragraphe a permit de réaliser ceci en une seule requête.
>mysql update oc_filecache set mimetype = ( select id from oc_mimetypes where mimetype = 'application/gpx' ) where name like '%.gpx'; Query OK, 2944 rows affected (0.33 sec) Rows matched: 2945 Changed: 2944 Warning: 0
Pour cette exécution, quasiment tous les fichiers sont modifiés, à l'exception d'un dont la valeur était déjà celle souhaitée.