Giter Site home page Giter Site logo

yunohost.multimedia's Introduction

⚠️ Multimedia directories helpers have been integrated into YunoHost core since its version 4.2.0.

⚠️ Les helpers pour les dossiers multimédia ont été intégrés au coeur de YunoHost depuis sa version 4.2.0.


Dossiers multimédia pour Yunohost

Ce package permet la centralisation des media de chaque utilisateurs ainsi que des médias partagés entre tout les utilisateurs. Chaque utilisateur se verra attribuer un dossier Multimedia dans son home pour y placer ses fichiers. Un dossier Share sera accessible par chaque utilisateur, permettant de disposer de médias accessibles à tous.

Les dossiers multimedia et share, virtuellement placés dans le home de chaque utilisateur sont en réalité regroupés dans le dossier /home/yunohost.multimedia

Cette arborescence permet à chaque application nécessitant un accès aux fichiers multimédias de les retrouver aisément, sans multiplier les emplacements de ces fichiers.

L'arborescence exacte de ce dossier est la suivante:

  • /home/yunohost.multimedia/
  • user1/
    • Music
    • Picture
    • Video
    • eBook
    • Share (lien symbolique sur le dossier /home/yunohost.multimedia/Share)
  • user2/
    • Music
    • Picture
    • Video
    • eBook
    • Share
  • Share/
    • Music
    • Picture
    • Video
    • eBook

Usage du package par les applications multimédia

Pour toutes les applications, mise en place des dossiers multimédias:

Toutes les applications nécessitant un accès aux dossiers multimédias, quel que soit les droits qu'elles exigeront sur ceux-ci, doivent au préalable s'assurer de l'existence des dossiers multimédias. Pour cela, il suffit de télécharger le package et d'exécuter le script ynh_media_build.sh afin de construire et configurer les dossiers multimédias.

wget -nv https://github.com/maniackcrudelis/yunohost.multimedia/archive/master.zip
unzip master.zip
sudo ./yunohost.multimedia-master/script/ynh_media_build.sh

Application multimédia ayant besoin d'un droit de lecture:

Une application ayant uniquement besoin de pouvoir lire les médias n'a rien de particulier à faire. Les fichiers médias sont accessible en lecture à tous.

Toutefois, une application désirant lire les fichiers multimédias doit choisir entre lire le contenu des dossiers utilisateurs, pour une application multi-utilisateurs ou lire le contenu du dossier Share, pour une application sans utilisateur désigné.

Ex: Minidlna est une application qui se contente d'un droit de lecture, elle n'écrit pas dans les dossiers médias.

Application multimédia ayant besoin d'un droit d'écriture sur l'ensemble des médias:

Une application ayant besoin d'un droit d'écriture sur les médias doit s'ajouter au groupe multimedia, car seul le groupe multimedia garde un droit d'écriture sur l'ensemble du dossier multimédia, indépendamment des propriétaires des fichiers.

sudo groupadd -f multimedia
sudo usermod -a -G multimedia APP_USER

Ex: Owncloud est très utile pour permettre aux utilisateurs de gérer leur collection de médias. Il a donc besoin d'un droit d'écriture pour permettre à chaque utilisateur de supprimer ses médias ou en ajouter.

Application utilisant un dossier propre, à mettre à disposition des utilisateurs:

Une application peux avoir à utiliser son propre dossier de médias, pour diverses raisons, tout en gardant l'intérêt de permettre aux utilisateurs d'y accéder. Dans ce cas de figure, l'application peut utiliser le script ynh_media_addfolder.sh pour ajouter son dossier de médias au dossier yunohost.multimedia. Le dossier deviendra ainsi accessible à l'ensemble des utilisateurs en lecture et en écriture.

sudo ./yunohost.multimedia-master/script/ynh_media_addfolder.sh --source="/CHEMIN/DU/DOSSIER/À/PARTAGER" --dest="CHEMIN/ET/NOM_DU_DOSSIER_DANS_YUNOHOST.MULTIMEDIA"

L'usage normal du script ynh_media_addfolder.sh ne déplace pas le dossier de l'application, il créer un lien symbolique vers celui-ci. Il est toutefois possible d'inverser ce comportement avec l'argument --inv. Dans ce cas, le dossier est déplacé et renommé dans dest, tandis qu'un lien symbolique vient prendre la place du dossier de l'application.

Ex: Transmission enregistre les téléchargements dans son propre dossier, mais il est intéressant pour les utilisateurs de pouvoir accéder à ces téléchargements. Et aux applications multimédias d'accéder aux médias téléchargés.

Usage du dossier multimedia en ssh

Pour ajouter ou supprimer simplement des fichiers multimédia via une connexion ssh, il peux être nécessaire d'ajouter l'user ssh au groupe multimédia. Cela permettra d'obtenir simplement un droit d'écriture sur l'ensemble des fichiers du dossier yunohost.multimedia.

sudo usermod -a -G multimedia SSH_USER

yunohost.multimedia's People

Contributors

maniackcrudelis avatar krakinou avatar

Stargazers

André_Teixeira_1998 avatar  avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

yunohost.multimedia's Issues

Possibilité de créer et un controller un dossier sans source

Salut, j'essaye d'utiliser yunohost.multimedia pour l'app Couchpotato mais il semble manquer l'option dont j'ai besoin.

Je cherche à ajouter un dossier "Movie" dans share/video. Ce dossier movie n'existe que dans yunohost.multimedia, il n'a pas de source liée.
Est-il possible de faire cela avec ynh_media_addfolder.sh ? Je n'ai pas l'impression

Merci

Share the app folder in Nextcloud

Hi
Is it possible to share the app folder eg. /var/www/mywebapp/www into the Nextcloud for a user so that its easy to put files in the app folder without changing the app permissions?

Error on post_user_delete hook execution

On Debian Stretch, I get this when I delete a user:

Attention : ./50-ynh_media: ligne 6 : [: -n : opérateur binaire attendu

By the way, the hook assigns $1 to $user, but then uses $1 again...

Write access for Owncloud

How can I give the write access to the multimedia folder in the home/$user/Multimedia
I can only see the media folder in the home folder from owncloud for now.

setfcal failing on NFS read-only mount - high load

I have an NFS read only mount on

$ mount 
[snip] 
192.168.0.25:/home/arthur/Music on /home/yunohost.multimedia/share/Music type nfs4 (rw,relatime,vers=4.1,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.17,local_lock=none,addr=192.168.0.25)
$ touch /home/yunohost.multimedia/share/Music/test
touch: cannot touch '/home/yunohost.multimedia/share/Music/test': Read-only file system

When installing calibreweb https://github.com/YunoHost-Apps/calibreweb_ynh I seem to end up in code from this repo

31245 ?        S      0:00  |       \_ /bin/bash ./yunohost.multimedia-master/script/ynh_media_build.sh
31897 ?        S      0:00  |           \_ sudo setfacl -RnL -m d:g:multimedia:rwX,g::rwX,o:r-X /home/yunohost.multimedia
31898 ?        D      0:25  |               \_ setfacl -RnL -m d:g:multimedia:rwX,g::rwX,o:r-X /home/yunohost.multimedia

yunohost tries to go through all the files and do setfacl on them and is failing. Could this be detected ?

The admin interface gets too many warnings and starts to lag, and the load reaches 10 quite fast.

Pourquoi unzip ?

Salut,
Je me demandais. Y a-t-il un intérêt à télécharger le master.zip puis le dézipper plutôt que git clone ?
Merci

"$DOSSIER_MEDIA/share" <- "$DOSSIER_MEDIA/$user/Share" bloque NextCloud

D'abord merci pour ce package!

Sur nextCloud 19.0.3, activer yunohost.multimedia crée une erreur lorsque NextCloud rescanne ses dossiers:

# cd /var/www/nextcloud
# sudo -u nextcloud php7.3 occ files:scan sl

Starting scan for user 1 out of 1 (sl)
Exception during scan: Following symlinks is not allowed
#0 /var/www/nextcloud/lib/private/Files/Storage/Local.php(161): OC\Files\Storage\Local->getSourcePath('/Share')
#1 /var/www/nextcloud/lib/private/Files/Storage/Common.php(884): OC\Files\Storage\Local->getMetaData('/Share')
#2 [internal function]: OC\Files\Storage\Common->getDirectoryContent('')
#3 /var/www/nextcloud/lib/private/Files/Cache/Scanner.php(408): iterator_to_array(Object(Generator))
#4 /var/www/nextcloud/lib/private/Files/Cache/Scanner.php(388): OC\Files\Cache\Scanner->handleChildren('', true, 3, 377, true, 0)
#5 /var/www/nextcloud/lib/private/Files/Cache/Scanner.php(340): OC\Files\Cache\Scanner->scanChildren('', true, 3, 377, true)
#6 /var/www/nextcloud/lib/private/Files/Utils/Scanner.php(260): OC\Files\Cache\Scanner->scan('', true, 3)
#7 /var/www/nextcloud/apps/files/lib/Command/Scan.php(151): OC\Files\Utils\Scanner->scan('/sl', true, NULL)
#8 /var/www/nextcloud/apps/files/lib/Command/Scan.php(207): OCA\Files\Command\Scan->scanFiles('sl', '/sl', Object(Symfony\Component\Console\Output\ConsoleOutput), false, true, false)
#9 /var/www/nextcloud/3rdparty/symfony/console/Command/Command.php(255): OCA\Files\Command\Scan->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 /var/www/nextcloud/core/Command/Base.php(169): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 /var/www/nextcloud/3rdparty/symfony/console/Application.php(1012): OC\Core\Command\Base->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 /var/www/nextcloud/3rdparty/symfony/console/Application.php(272): Symfony\Component\Console\Application->doRunCommand(Object(OCA\Files\Command\Scan), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 /var/www/nextcloud/3rdparty/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 /var/www/nextcloud/lib/private/Console/Application.php(215): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 /var/www/nextcloud/console.php(100): OC\Console\Application->run()
#16 /var/www/nextcloud/occ(11): require_once('/var/www/nextcl...')
#17 {main}
+---------+-------+--------------+
| Folders | Files | Elapsed time |
+---------+-------+--------------+
| 26      | 4023  | 00:00:01     |
+---------+-------+--------------+

Et effectivement, dans /home/yunohost.app/nextcloud/data/nextcloud.log on trouve:

{"reqId":"Ropa9zVO7SyUEfRXwEsB","level":3,"time":"2020-09-29T12:00:10+00:00","remoteAddr":"","user":"--","app":"core","method":"","url":"--","message":"Following symlinks is not allowed ('/home/yunohost.multimedia/sl//Share' -> '/home/yuno
host.multimedia/share/' not inside '/home/yunohost.multimedia/sl/')","userAgent":"--","version":"19.0.3.1"}

Est-ce que ce symlink est indispensable? Il rend yuhonhost.multimedia inutilisable avec nextCloud, à moins de retirer cette ligne manuellement.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.