Puncte:0

Bluetooth: Fișierele fie nu sunt primite, fie sunt goale

drapel ke

Încerc să transfer imagini de pe telefonul meu (un model Huawei mai vechi) pe un PC care rulează Ubuntu 20.04 LTS prin Bluetooth.

Ținând deschisă dialogul de setări Bluetooth (așa cum este descris pe unele site-uri web), telefonul raportează că computerul a refuzat primirea fișierului.

Încercând „blueman” ca sugerat într-un alt răspuns (sau într-un singur răspuns la această întrebare), am un comportament ciudat:

  • Dacă telefonul este marcat ca „de încredere dispozitiv", primesc același mesaj de eroare de la telefon.
  • Când telefonul a fost marcat ca „undispozitiv de încredere”, telefonul a raportat că fișierul a fost trimis cu succes, iar Ubuntu a raportat că fișierul a fost primit.
    Cu toate acestea, fișierul nu a fost stocat pe disc și nu am reprodus acest comportament.

Folosind bt-obex, telefonul meu raportează „fișier transferat cu succes”, dar fișierele nu sunt stocate în Descărcări director dar an gol fișierul este creat în ~/.cache/obexd:

$ mkdir destdir

$ bt-obex -y -s destdir
[Server OBEX] Sesiunea OBEX a fost deschisă
[Server OBEX] Transferul a început
[Cerere de transfer]
  Nume: IMG_20211009_102029.jpg
  Dimensiune: 2667331 octeți
[Server OBEX] Transfer OBEX închis
[Server OBEX] Sesiune OBEX închisă
^C

$ găsiți. | grep IMG_20211009_102029
./.cache/obexd/IMG_20211009_102029.jpg

$ wc .cache/obexd/*.jpg
0 0 0 .cache/obexd/IMG_20211009_102029.jpg

Nu ar fi o problemă dacă fișierul ar fi stocat în .cache/obexd, dar după cum puteți vedea, fișierul din acel director este gol!

De ce nu primește fișierul?

EDITAȚI | ×

Am aflat că primirea fișierelor folosind obexpushd lucrează bine...

David avatar
drapel cn
Poate doriți să clarificați titlul. Fișierele nu sunt goale conform întrebării. Directorul în care vă așteptați să le găsiți nu are fișiere.
Martin Rosenau avatar
drapel ke
@David Am schimbat titlul
Puncte:0
drapel ke

Am gasit singur raspunsul:

Ale mele ACASĂ directorul este un link simbolic către un director:

/acasă/numele meu este o legătură simbolică către /altul_director.

În mod implicit, obexd (care este folosit atât de receptorul de fișiere încorporat, cât și de bt-obex) verifică dacă atât destinația fișierului temporar (în ~/.cache/obexd) și cel „final” (în ~/Descărcări) sunt într-adevăr într-un subdirector al ACASĂ director.

obexd folosește numele directorului „real” dacă sunt implicate legături simbolice, deci află că numele complet al fișierului /other_directory/.cache/obexd/... nu începe cu /acasă/numele meu/ și refuză să continue operațiunea.

O soluție este să faci a pkill obexd și repornind obexd trecând numele real al directorului de pornire folosind -r argument.

Presupun că această verificare este făcută pentru a evita ca cineva să suprascrie un fișier ca /usr/bin/ls prin trimiterea unui fișier numit ../../../../../usr/bin/ls.

Interesant este că această verificare este făcută după obexd a deschis fișierul cu O_CREAT|O_TRUNC steaguri, deci în acest caz, /usr/bin/ls ar fi suprascris de un fișier gol!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.