Vala - Изменить права доступа к файлу изображения, загруженного из Unsplash API - PullRequest
1 голос
/ 19 июня 2019

Мне нужно изменить разрешение файла на изображение, загруженное из Unsplash API, чтобы использовать его в качестве фона Greeter (элементарная регистрация в ОС).

Я пробовал с флагами, такими как FileCopyFlags.OVERWRITE, FileCopyFlags.ALL_METADATA, FileCopyFlags.TARGET_DEFAULT_PERMS и FileCopyFlags.NONE, в методе File.copy_async, но после завершения загрузки файлов файл имеет только разрешения владельца [600].

Причина, по которой мне нужно изменить разрешения, заключается в том, что Greeterиспользует изображение в папке /var/lib/lightdm-data/user/wallpaper/image.jpg и требует разрешения на чтение для этого изображения.

var file_path = File.new_for_path ("/home/user/.local/share/backgrounds/background.jpg");
var file_from_uri = File.new_for_uri ("https://images.unsplash.com/photo-1560613717-c793db79055e?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb2176");

if (!file_path.query_exists ()) {
  file_from_uri.copy_async.begin (file_path, 
    FileCopyFlags.OVERWRITE | 
    FileCopyFlags.ALL_METADATA, 
    GLib.Priority.DEFAULT, 
    null, (current_num_bytes, total_num_bytes) => {
       // show progress
    }, (obj, res) => {
       // detect end
    });
} else {
    print ("Picture already exist\n");
}

Созданное изображение имеет [600] -rw------- разрешения, и мне нужно [664] -rw-rw-r-- 1, чтобы использовать его для Greeter.

Мой нежелательный результат

Мне нужно это

...