Данные пользователя
Начиная с ОС Аврора версии 4.0.1 каждое приложение запускается в изолированном окружении, которое ограничивает доступ к API и данным. Директории, которые доступны приложениям для чтения и записи, определяются как названием установочного пакета, так и разрешениями, перечисленными в .desktop-файле.
Пути к директориям рекомендуется указывать с помощью класса QStandardPaths или QML-типа StandardPaths. Такой подход позволяет избежать привязок к конкретному приложению или параметрам окружения.
Если приложение не использует libauroraapp,
в функции main()
нужно соответствующим образом сконфигурировать
экземпляр класса QGuiApplication,
чтобы пути были настроены корректно:
QScopedPointer<QGuiApplication> application(Aurora::Application::application(argc, argv));
application->setOrganizationName(QStringLiteral("{доменное_имя}"));
application->setApplicationName(QStringLiteral("{название_приложения}"));
{доменное_имя}
и {название_приложения}
должны соответствовать тем,
которые указаны
в .desktop-файле.
По умолчанию каждое приложение имеет доступ на чтение и запись только к тем директориям, которые ему соответствуют, а также общей директории всех приложений одной организации.
При разработке приложений, начиная с версии 4.0.2 update 1 (4.0.2.175),
для получения путей следует использовать методы,
предоставляемые библиотекой libauroraapp
.
Методы находятся в пространстве имен Aurora::Application
.
Прямое использование путей может привести к остановке работы приложения и проблемам переносимости приложений, так как путь, возвращаемый методами API, может отличаться в новых версиях ОС.
Типы данных | Описание |
---|---|
Динамические | Данные, которые создаются приложением в процессе его работы |
Статические | Данные, поставляемые вместе с пакетом |
Тип данных | Доступ пользователей | Доступ приложения | API | Описание |
---|---|---|---|---|
Динамические | Только текущий | Только текущее приложение | filesDir(false) |
Директория для данных, доступных только текущему пользователю и текущему приложению |
Только текущий | Только текущее приложение | cacheDir(false) |
Директория для данных, доступных только текущему пользователю и текущему приложению | |
Только текущий | Все приложения организации | organizationFilesDir(false) |
Директория для данных, доступных только текущему пользователю и всем приложениям одного вендора | |
Только текущий | Все приложения организации | organizationCacheDir(false) |
Директория для данных, доступных только текущему пользователю и всем приложениям одного вендора | |
Все | Только текущее приложение | filesDir(true) |
Директория для данных, доступных всем пользователям и только текущему приложению | |
Все | Только текущее приложение | cacheDir(true) |
Директория для данных, доступных всем пользователям и только текущему приложению | |
Все | Все приложения организации | organizationFilesDir(true) |
Директория для данных, доступных всем пользователям и всем приложениям одного вендора | |
Все | Все приложения организации | organizationCacheDir(true) |
Директория для данных, доступных всем пользователям и всем приложениям одного вендора | |
Статические | Все | Только текущее приложение | pathTo() |
Директория для данных, доступных всем пользователям и только текущему приложению с возможностью распаковки данных при установке пакета (только чтение) |
Все | Все приложения организации | organizationPathTo() |
Директория для данных, доступных всем пользователям и всем приложениями одного вендора с возможностью распаковки данных при установке пакета (только чтение) | |
Все | Все приложения организации | getPath() |
Директория для данных, доступных всем пользователям и всем приложениям |
Методы для получения путей для libauroraapp работают только из основного бинарного файла приложения. Использование в дополнительных бинарных файлах, если таковые имеются в составе пакета приложения, невозможно.
Для доступа к общим директориям пользователя необходимо указать разрешения в .desktop-файле.
Доступ к директориям для различных типов данных приложения и организации выдаётся без дополнительных разрешений.
Описание | Константа QStandardPaths | Свойство StandardPaths | Константа Aurora::Application | Путь | Разрешение | Примечание |
---|---|---|---|---|---|---|
Документы пользователя | DocumentsLocation |
documents |
DocumentsLocation |
~/Documents | Documents или UserDirs |
|
Загрузки пользователя | DownloadLocation |
downloads |
DownloadLocation |
~/Downloads | Downloads или UserDirs |
|
Музыка и другие аудиофайлы пользователя | MusicLocation |
music |
MusicLocation |
~/Music | Music или UserDirs |
|
Фотографии и другие изображения пользователя | PicturesLocation |
pictures |
PicturesLocation |
~/Pictures | Pictures или UserDirs |
|
Общие данные приложений пользователя | GenericDataLocation |
genericData |
GenericDataLocation |
~/Public | PublicDir или UserDirs |
|
Фильмы и другие видео пользователя | MoviesLocation |
videos |
MoviesLocation |
~/Videos | Videos или UserDirs |
|
Подключаемые накопители (SD-карты и т. п.) | RemovableMedia |
RemovableMedia |
||||
Кэш приложения | AppCacheLocation |
/srv/shared/$OrgName/$AppName/cache | ||||
Данные приложения | AppDataLocation |
/srv/shared/$OrgName/$AppName/data | ||||
Кэш приложения для пользователя | CacheLocation |
cache |
AppLocalCacheLocation |
~/.cache/$OrgName/$AppName | ||
Данные приложения для пользователя | data |
AppLocalDataLocation |
~/.local/share/$OrgName/$AppName | |||
Каталог рабочего стола пользователя | DesktopLocation |
DesktopLocation |
~/Desktop | |||
Шрифты | FontsLocation |
/usr/share/fonts | ||||
Домашний каталог пользователя | HomeLocation |
home |
HomeLocation |
~ | ||
Кэш организации | OrgCacheLocation |
/srv/shared/$OrgName/common/cache | ||||
Кэш организации для пользователя | OrgLocalCacheLocation |
~/.cache/$OrgName/common | ||||
Данные организации для пользователя | OrgLocalDataLocation |
~/.local/share/$OrgName/common | ||||
Каталог с общими файлами организации | OrgFilesLocation |
/usr/share/common/$OrganizationName/ | Данный путь используется только для чтения | |||
Каталог с файлами пакета | PackageFilesLocation |
/usr/share/$PackageName/ | ||||
Каталог для файлов, используемых во время работы приложения | RuntimeLocation |
RuntimeLocation |
/run/user/$User | |||
Каталог для временных файлов | TempLocation |
temporary |
TempLocation |
/tmp |
Примечание:
Несмотря на то, что разрешение UserDirs
может использоваться
для доступа ко всем перечисленным директориям пользователя,
не рекомендуется его указывать,
если нет необходимости работать со всеми директориями.