Jak uzyskać dostęp do pamięci USB z aplikacji zainstalowanej jako Snap?


14

Mam zainstalowany Ubuntu 18.04 LTS.

Włączyłem pamięć flash USB do laptopa. Został on automatycznie zamontowany w / media / nazwa użytkownika / DISKLABEL i otwarty w Nautilus. Potrafię czytać i zapisywać na nim obiekty.

Jak mogę uzyskać do niego dostęp z aplikacji zainstalowanej jako Snap?

Próbowałem zaskoczy następujących zastosowań, takich jak gedit, arduino-mhall119, organize-my-files. Wszystkie wyświetlają błędy, jeśli nawiguję do folderu / media :

próba dostępu / media

próba dostępu / media

Dane wyjściowe aktywnych interfejsów Snap są poniżej:

$ snap interfaces  | grep -v ".*-$"
Slot                             Plug
:browser-support                 organize-my-files
:core-support                    core:core-support-plug
:cups-control                    gedit
:desktop                         gedit,organize-my-files
:desktop-legacy                  gedit,organize-my-files
:gsettings                       gedit,organize-my-files
:home                            arduino-mhall119,gedit,organize-my-files
:network                         arduino-mhall119,gedit,organize-my-files,pulsemixer
:opengl                          organize-my-files
:pulseaudio                      organize-my-files,pulsemixer
:unity7                          arduino-mhall119,gedit,organize-my-files
:wayland                         gedit
:x11                             arduino-mhall119,organize-my-files,pulsemixer
gnome-3-26-1604:gnome-3-26-1604  gedit
gtk-common-themes:gtk3-themes    gedit
gtk-common-themes:icon-themes    gedit
gtk-common-themes:sound-themes   gedit
-                                arduino-mhall119:serial-port
-                                gedit:avahi-observe
-                                gedit:mount-observe

Aktualizacje:

  • połączenie mount- observ z Geditem snap connect gedit:mount-observenie pomaga.
  • wydaje się, że potrzebujemy specjalnego Snap z obsługą removable-mediainterfejsu.

Odpowiedzi:


12

Potrzebujemy więc specjalnie przygotowanego Snapa z obsługą removable-mediainterfejsu / wtyczki.

Poniżej znajduje się lista Snap z wtyczką nośnika wymiennego opisaną w YAML-manifest:

Można znaleźć inne Snapy wydane przez SnapCrafters z następującym linkiem wyszukiwania GitHub .


Jeśli więc aplikacja nie ma funkcji automatycznego łączenia removable-media, musimy połączyć ją ręcznie za pomocą:

snap connect some-snap-name:removable-media

Ale nie wszystkie aplikacje mają tę wtyczkę / interfejs w YAML-manifest.


Trudno znaleźć pakiety według obsługiwanych wtyczek - dlatego stworzyłem problem „Dodaj możliwość parametrycznego wyszukiwania Snap z filtrami (wtyczkami removable-mediaitp.)” Na stronie snapcraft.io .

Błąd dotyczący snappolecenia o nazwie snappowinien zapewniać funkcjonalność do znajdowania pakietów z potrzebną wtyczką lub złączem” został zgłoszony do startera jako błąd 1776938 .


Prawidłowe polecenie to:snap connect some-snap-name:removable-media
Zygmunt Krynicki

@ZygmuntKrynicki oczywiście. Dziękuję, naprawiłem tę głupią literówkę.
N0rbert

Błąd, który jest cytowany w dwóch ostatnich akapitach, jest naprawdę denerwujący, ale proste obejście tego problemu, jeśli pakiet przystawki jest już zainstalowany, tosnap interfaces some-snap-name
karel

@karel, racja. Dziękuję Ci! Mam już to polecenie. Głównym problemem jest określenie wtyczek niezainstalowanego Snap.
N0rbert

1
Błąd, który jest cytowany w dwóch ostatnich akapitach, jest naprawdę denerwujący, ale jest to proste obejście, jeśli pakiet Snap jest już zainstalowany, to snap connections some-snap-namejest aktualizacja mojego poprzedniego komentarza.
karel

4

Program Ubuntu będzie teraz wyświetlał przycisk uprawnień na stronie każdego zainstalowanego programu Snap.

strona Krita programu Ubuntu Software z przyciskami pod tytułem - Uruchom, Usuń i Uprawnienia

Kliknij Uprawnienia, a wyskakujące okienko wyświetli opcję „Odczyt / zapis plików na wymiennych urządzeniach magazynujących”, z przyciskiem po prawej stronie, który kliknij, aby włączyć.

wprowadź opis zdjęcia tutaj

Musisz aktywować każdy program jeden po drugim w ten sposób, ale nie ma nic specjalnego do zapamiętania, poza tym, że przycisk istnieje.


Dodaj zrzut ekranu „Kliknij przycisk Uprawnienia i wyskakujące okienko” do odpowiedzi.
N0rbert

@ N0rbert Done ...
posiadacz kim

3

Interfejs, który należy podłączyć, to removable-media.

Może uzyskiwać dostęp do plików z nośników wymiennych w / media i / run / media. Można to wykorzystać, aby dać aplikacji dostęp do zamontowanych pamięci USB i zewnętrznych dysków twardych na pulpicie.

mount-observeInterfejs tylko pozwala zobaczyć co jest zamontowany, a nie wierzchowce dostępu:

Może zapytać o informacje o montażu systemu. Jest to ograniczone, ponieważ daje uprzywilejowany dostęp do odczytu argumentów montowania i powinno być używane tylko z zaufanymi aplikacjami.

Żaden z tych dwóch interfejsów nie połączy się automatycznie. Od https://github.com/snapcore/snapd/wiki/Interfaces#removable-media


Nie wiem Wydaje się, że robi to studio, ale znalazłem to tylko dlatego, że wspomniałem interfejs w opisie aplikacji o dostępie do pamięci zewnętrznej. Nie wiem, jak szybko wykonać zapytanie do sklepu o określone interfejsy. Jeśli określona przystawka nie obsługuje interfejsu, prawdopodobnie będzie trzeba go przebudować, aby go obsługiwać.
dobey,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.