mirror of
https://github.com/tubearchivist/tubearchivist-frontend.git
synced 2024-11-13 23:50:13 +00:00
make chown command optional by omitting HOST_UID and HOST_GID, #58
This commit is contained in:
parent
6f4bab41d5
commit
58efe64c5d
@ -51,7 +51,7 @@ The main Python application that displays and serves your video collection, buil
|
|||||||
- Needs a mandatory volume for the video archive at **/youtube**
|
- Needs a mandatory volume for the video archive at **/youtube**
|
||||||
- And another recommended volume to save the cache for thumbnails and artwork at **/cache**.
|
- And another recommended volume to save the cache for thumbnails and artwork at **/cache**.
|
||||||
- The environment variables `ES_URL` and `REDIS_HOST` are needed to tell Tube Archivist where Elasticsearch and Redis respectively are located.
|
- The environment variables `ES_URL` and `REDIS_HOST` are needed to tell Tube Archivist where Elasticsearch and Redis respectively are located.
|
||||||
- The environment variables `HOST_UID` and `HOST_GID` allows Tube Archivist to `chown` the video files to the main host system user instead of the container user.
|
- The environment variables `HOST_UID` and `HOST_GID` allows Tube Archivist to `chown` the video files to the main host system user instead of the container user. Those two variables are optional, not setting them will disable that functionality. That might be needed if the underlying filesystem doesn't support `chown` like *NFS*.
|
||||||
|
|
||||||
### Elasticsearch
|
### Elasticsearch
|
||||||
Stores video meta data and makes everything searchable. Also keeps track of the download queue.
|
Stores video meta data and makes everything searchable. Also keeps track of the download queue.
|
||||||
|
@ -39,11 +39,23 @@ class AppConfig:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def get_config_env():
|
def get_config_env():
|
||||||
"""read environment application variables"""
|
"""read environment application variables"""
|
||||||
|
host_uid_env = os.environ.get("HOST_UID")
|
||||||
|
if host_uid_env:
|
||||||
|
host_uid = int(host_uid_env)
|
||||||
|
else:
|
||||||
|
host_uid = False
|
||||||
|
|
||||||
|
host_gid_env = os.environ.get("HOST_GID")
|
||||||
|
if host_gid_env:
|
||||||
|
host_gid = int(host_gid_env)
|
||||||
|
else:
|
||||||
|
host_gid = False
|
||||||
|
|
||||||
application = {
|
application = {
|
||||||
"REDIS_HOST": os.environ.get("REDIS_HOST"),
|
"REDIS_HOST": os.environ.get("REDIS_HOST"),
|
||||||
"es_url": os.environ.get("ES_URL"),
|
"es_url": os.environ.get("ES_URL"),
|
||||||
"HOST_UID": int(os.environ.get("HOST_UID")),
|
"HOST_UID": host_uid,
|
||||||
"HOST_GID": int(os.environ.get("HOST_GID")),
|
"HOST_GID": host_gid,
|
||||||
}
|
}
|
||||||
|
|
||||||
return application
|
return application
|
||||||
|
@ -579,6 +579,7 @@ class VideoDownloader:
|
|||||||
new_folder = os.path.join(videos, channel_name)
|
new_folder = os.path.join(videos, channel_name)
|
||||||
if not os.path.exists(new_folder):
|
if not os.path.exists(new_folder):
|
||||||
os.makedirs(new_folder)
|
os.makedirs(new_folder)
|
||||||
|
if host_uid and host_gid:
|
||||||
os.chown(new_folder, host_uid, host_gid)
|
os.chown(new_folder, host_uid, host_gid)
|
||||||
# find real filename
|
# find real filename
|
||||||
cache_dir = self.config["application"]["cache_dir"]
|
cache_dir = self.config["application"]["cache_dir"]
|
||||||
@ -590,6 +591,7 @@ class VideoDownloader:
|
|||||||
new_file_path = os.path.join(videos, vid_dict["media_url"])
|
new_file_path = os.path.join(videos, vid_dict["media_url"])
|
||||||
# move media file and fix permission
|
# move media file and fix permission
|
||||||
shutil.move(old_file_path, new_file_path)
|
shutil.move(old_file_path, new_file_path)
|
||||||
|
if host_uid and host_gid:
|
||||||
os.chown(new_file_path, host_uid, host_gid)
|
os.chown(new_file_path, host_uid, host_gid)
|
||||||
|
|
||||||
def delete_from_pending(self, youtube_id):
|
def delete_from_pending(self, youtube_id):
|
||||||
|
Loading…
Reference in New Issue
Block a user