После начала использования
s3fs
— выяснилась одна деталь.
Файлы загружаются с помощью boto3
.
Но после того, как корзина смонтирована к системе — получить доступ к файлам нельзя:
cp /mnt/projectname-idfa/projectname\ android\ purchase\ idfa.csv /tmp/
cp: cannot open '/mnt/projectname-idfa/projectname android purchase idfa.csv' for reading: Permission denied
Проверяем права на файлы — и ой:
ll /mnt/projectname-idfa/
total 730980
---------- 1 root root 12688821 Nov 22 11:29 'projectname android install idfa.csv'
---------- 1 root root 667425 Nov 22 11:29 'projectname android purchase idfa.csv'
---------- 1 root root 60514676 Nov 22 11:28 'projectname ios install idfa.csv'
---------- 1 root root 1637570 Nov 22 11:29 'projectname ios payment idfa.csv'
...
И сменить права через chmod
тоже не получится:
sudo chmod 644 /mnt/projectname-idfa/projectname\ android\ purchase\ idfa.csv
chmod: cannot access '/mnt/projectname-idfa/projectname android purchase idfa.csv': Permission denied
Решение — задавать права доступа через Metadata
, при загрузке данных в корзину. См. комментарий тут>>>.
Обновляем скрипт, добавляем ExtraArgs
:
... _s3.meta.client.upload_file(out_file_name, os.environ['BUCKET_NAME'], out_file_name, \ ExtraArgs={ "Metadata": { "mode": "33204", "uid": "1000", "gid": "1000", }, },) ...
Запускаем его, проверяем права на файлы теперь:
ll /mnt/projectname-idfa/
total 731040
-rw-rw-r-- 1 setevoy setevoy 12694741 Nov 22 12:17 'projectname android install idfa.csv'
-rw-rw-r-- 1 setevoy setevoy 667647 Nov 22 12:17 'projectname android purchase idfa.csv'
-rw-rw-r-- 1 setevoy setevoy 60524370 Nov 22 12:17 'projectname ios install idfa.csv'
...
Готово.