mediacms-io / mediacms

MediaCMS is a modern, fully featured open source video and media CMS, written in Python/Django and React, featuring a REST API.
https://mediacms.io
GNU Affero General Public License v3.0
2.67k stars 495 forks source link

[Feature] Support Long file names #53

Closed Anzumatsuri closed 1 year ago

Anzumatsuri commented 3 years ago

Built and deployed via docker compose. Here's the error logs:

[2021-02-13 09:40:32,190: INFO/ForkPoolWorker-1] encode_media[fb9e5623-4af1-474a-9d48-c55c33ac514b]: Encode Media started, friendly token nok0IhkGC, profile id 10, force True [2021-02-13 09:40:32,598: INFO/MainProcess] Received task: encode_media[4476dd22-f32b-4f3f-9d7d-e9e2437c5a21]
[2021-02-13 09:40:33,483: INFO/ForkPoolWorker-1] encode_media[fb9e5623-4af1-474a-9d48-c55c33ac514b]: Saved 0.02 [2021-02-13 09:40:42,705: INFO/ForkPoolWorker-2] encode_media[58468e25-93a8-4817-b1e2-6b5d20523f06]: Saved 2.29 [2021-02-13 09:40:54,256: INFO/ForkPoolWorker-3] encode_media[4bd61192-bb9e-4f03-aafc-d407fd4ae7f6]: Saved 3.38 [2021-02-13 09:41:06,098: INFO/ForkPoolWorker-1] encode_media[fb9e5623-4af1-474a-9d48-c55c33ac514b]: Saved 0.6 [2021-02-13 09:41:13,038: INFO/ForkPoolWorker-4] Task produce_sprite_from_video[b3066118-940e-4d50-b872-78f50ea48379] succeeded in 388.49497139599407s: True [2021-02-13 09:41:13,040: INFO/ForkPoolWorker-4] encode_media[e3007beb-70d1-42ce-9542-180e38bceff1]: Encode Media started, friendly token nok0IhkGC, profile id 10, force True [2021-02-13 09:41:14,160: INFO/MainProcess] Received task: encode_media[865240af-21ef-41f3-a69b-0083f565e255]
[2021-02-13 09:41:14,451: INFO/ForkPoolWorker-4] encode_media[e3007beb-70d1-42ce-9542-180e38bceff1]: Saved 0.02 [2021-02-13 09:41:15,529: INFO/ForkPoolWorker-2] encode_media[58468e25-93a8-4817-b1e2-6b5d20523f06]: Saved 2.86 [2021-02-13 09:41:19,133: ERROR/ForkPoolWorker-3] Task encode_media[4bd61192-bb9e-4f03-aafc-d407fd4ae7f6] raised unexpected: OSError(36, 'File name too long') Traceback (most recent call last): File "/home/mediacms.io/lib/python3.8/site-packages/celery/app/trace.py", line 412, in trace_task R = retval = fun(*args, *kwargs) File "/home/mediacms.io/lib/python3.8/site-packages/celery/app/trace.py", line 704, in __protected_call__ return self.run(args, **kwargs) File "/home/mediacms.io/mediacms/files/tasks.py", line 389, in encode_media encoding.media_file.save(content=myfile, name=output_name) File "/home/mediacms.io/lib/python3.8/site-packages/django/db/models/fields/files.py", line 87, in save self.name = self.storage.save(name, content, max_length=self.field.max_length) File "/home/mediacms.io/lib/python3.8/site-packages/django/core/files/storage.py", line 52, in save return self._save(name, content) File "/home/mediacms.io/lib/python3.8/site-packages/django/core/files/storage.py", line 267, in _save fd = os.open(full_path, self.OS_OPEN_FLAGS, 0o666) OSError: [Errno 36] File name too long: '/home/mediacms.io/mediacms/media_files/encoded/10/admin/2a20b04faf444f9b9eec1192b335ad0b.02_eFQjaLZo0_2a20b04faf444f9b9eec1192b335ad0b.11_2020_12_19_1655【テレ朝チャンネル1】【生】Creepy_Nuts_準ワンマンライブ「延長戦」at_LINE_CUBE_SHIBUYA<独占生中継>_2020年12月19日.mp4.mkv.mp4'

mgogoulos commented 3 years ago

max_length is 500 for Media, wondering what this breaks. Out of curiosity, what is the name of the media file?

Anzumatsuri commented 3 years ago

The filename is: 11. [2020.12.19.1655]【テレ朝チャンネル1】【生】Creepy Nuts 準ワンマンライブ「延長戦」at LINE CUBE SHIBUYA<独占生中継> 2020年12月19日.mkv

I'm not sure whether the name being in Japanese might be the cause of it. I did tried it with a shorter file name and they work just fine.