Будуємо домашню мережу. Мережевий накопичувач. Доступ до зовнішнього сховища – розробка ігор для ос android Вибір конфігурації дисків

Зі зростанням мегапікселів фото- та відеокамер проблема зберігання домашнього медіаконтенту все частіше виникає у великої кількості користувачів ПК. Звичайно, жорсткі диски стоять сьогодні не так вже й дорого, а їхній об'єм обчислюється терабайтами, але й цього буває мало.

Варіантів розширення ємності доступного дискового простору є кілька. Якщо у вас звичайний «великий» комп'ютер, то найпростіший із них – встановлення в нього нових вінчестерів. Більш універсальний спосіб – використання зовнішніх дисків. Однак найбільш зручним (і дорогим) буде встановлення в домашній локальній мережі мережного накопичувача.

Він дозволить вам мати постійний доступ з будь-якого ПК або плеєра до всієї медіабібліотеки, зберігати резервні копії документів та системних розділів комп'ютерів, обмінюватися файлами через інтернет без участі ПК та багато іншого. Крім того, ці пристрої відрізняє невеликий (порівняно з ПК) розмір та низький рівень енергоспоживання та шуму. Отже, якщо у вас не котедж з парою підсобних приміщень, то компактний мережевий накопичувач може бути дуже вдалим вибором. До речі, навіть є моделі для 2,5-дюймових вінчестерів.

Оскільки наша мережа вже включає роутер, достатньо лише підібрати потрібну модель NAS і підключити її до мережі. Для користувачів-початківців, які не впевнені в необхідності десятків терабайт, найкраще подивитися на пристрої з установкою одного або двох вінчестерів. Вони сьогодні найоптимальніші для домашнього використання. А якщо не вистачатиме місця – до них можна буде підключити зовнішні USB- або eSATA-диски. Якщо ж ви вже наперед розумієте, що пари дисків точно не вистачить - є моделі на 4, 5, 6 і більше дисків. Щоправда, їхня вартість відносно велика. Більшість пристроїв продаються без вінчестерів, тому їх треба буде купувати окремо. Для довідки найкраще орієнтуватись на списки сумісності виробників. Гнатися за найшвидшими вінчестерами в даному випадку немає сенсу. Краще підбирати їх за низьким рівнем енергоспоживання, нагрівання та шуму.

Варто також згадати про можливість використання як NAS окремого виділеного звичайного ПК. Але в цьому матеріалі йтиметься саме про готові мережеві накопичувачі.

До мережі практично всі пристрої підключаються по гігабітному з'єднанню, оскільки 10-12 МБ/с, які забезпечує FastEthernet, по плечу вже найпростішим моделям і сьогодні виглядають несерйозно.

Як вбудована операційна система зазвичай використовується Linux, але зустрічаються варіанти і з Windows Home Server. У другому випадку сервер практично не відрізняється від домашнього ПК, тільки спілкування з ним відбувається виключно через мережу. WHS забезпечена якісною документацією та численними «помічниками», тож розібратися буде нескладно. Більшість інформації далі у цій статті цього варіанту не відноситься.

Якщо вас лякає спілкування з Linux, то насправді нічого складного в даному випадку немає - користувачеві доступний зручний web-інтерфейс, через який можна налаштувати всі необхідні параметри та функції. Але якщо дістатися командного рядка - то можна буде працювати з пристроєм практично як із звичайним комп'ютером.

Крім операційної системи, є також сенс звернути увагу до можливості пристрою. В даний час крім звичайного зберігання файлів мережні накопичувачі надають послуги медіасервера, завантаження файлів, віддаленого доступу та інші.

Що стосується апаратної платформи та продуктивності, то моделі на x86-сумісних процесорах відносяться до найбільш продуктивного (і дорогого) сегменту, в центрі виступають ARM-процесори з частотою 1000-1600 МГц, а замикають лінійку, як правило, молодші ARM. Насправді варто дивитися не на саму платформу, а результати її конкретної реалізації, оскільки оптимізацією програмної оболонки можна досягти багато чого.

Від обсягу оперативної пам'яті залежить ефективність роботи додаткових сервісів, так що ми рекомендували б вибирати пристрої з 256 МБ або вище, якщо планується використовувати не тільки мережевий доступ до файлів. Хоча для першого ознайомлення цілком достатньо і 64 або 128 МБ. Тільки не чекайте від них надто багато.

На цей раз ми використовуємо модель DS210+ одного з найбільш популярних виробників даного сегменту ринку - компанії Synologу. Цей дводисковий пристрій, крім реалізації сервісів мережного зберігання файлів, має і безліч додаткових функцій і може бути дуже корисним як для домашнього використання, так і в офісах.

Потрібно відзначити, що зазвичай у всіх виробників можливості прошивок практично однакові для всіх моделей лінійки та оновлюються одночасно. Більш повно познайомитися з пристроями Synology можна у недавньому огляді DS710+.

Складання

Найчастіше мережеві накопичувачі продаються без вінчестерів і користувачеві потрібно їх придбати та встановити самостійно. Нічого складного тут немає – відкриваєте корпус чи витягуєте рамки, прикручуєте диски на місце та збираєте конструкцію.

Єдине зауваження тут – бажано попередньо переконатися, що на вінчестерах немає жодної інформації та таблиця розділів порожня. Інакше можуть бути помилки при інсталяції прошивки. Також не забуваємо, що всі моделі мережних накопичувачів для своїх внутрішніх дисків обов'язково вимагають переформатування і просто встановити існуючі диски зі збереженням даних не вдасться.

Встановлення прошивки

Після цього зазвичай необхідно пройти етап встановлення вбудованого програмного забезпечення NAS. Робиться це з використанням комплектної утиліти, у нашому випадку Synology Assistant. І прошивку, і програму найкраще завантажити із сайту виробника. Так ви будете впевнені, що використовуються останні версії. Але можна просто вставити в привід ПК комплектний оптичний диск - вся потрібна інформація записана і на ньому. Якщо накопичувач поставлявся з вінчестерами, прошивка в ньому вже стоїть і цей етап можна пропустити.

Налаштування мережі

У більшості випадків ніяких спеціальних мережних налаштувань на накопичувачі робити не потрібно. Адреси він отримує від роутера з DHCP, ім'я часто підходить запропоноване виробником. Але при необхідності (наприклад, якщо вам хочеться вказати нове ім'я або заборонити доступ накопичувача в інтернет, видаливши з параметрів адресу маршрутизатора за замовчуванням), можна скористатися сторінкою "Панель управління - Мережа". Крім того, тут можна ввімкнути підтримку Jumbo Frames.

Вибір конфігурації дисків

Після встановлення прошивки необхідно вибрати конфігурацію жорстких дисків (у деяких випадках вона створюється одночасно із встановленням прошивки). Якщо їх більше одного, можна вибрати один з варіантів RAID-масивів. Короткі порівняльні характеристики основних їх зазначені у таблиці. У формулі обсягу N - число дисків, S - обсяг одного з них (мається на увазі, що диски однакові, в більшості випадків це необхідно для оптимальної роботи).

РежимЧисло дисківЗагальний об'ємПлюсиМінуси
Окремі диски (Basic)1 SМаксимальна незалежністьНемає відмовостійкості, немає можливості об'єднання дисків
JBOD2 і більшеS×NЄдиний масив максимального обсягу
RAID02 і більшеS×Nмаксимальна швидкістьПри відмові одного диска втрачається вся інформація
RAID12 SМалий корисний об'єм
RAID53 і більшеS×(N−1)Відмовостійкість до втрати одного дискаПотрібно 3 диски і більше, невисока швидкість запису на слабких системах

Деякі виробники, зокрема аналізований тут Synology, надають власні реалізації RAID зі спрощеною конфігурацією - коли для розширення масиву достатньо лише додати диски або поміняти його на більш ємний.

Більшість моделей дозволяють створювати відразу кілька масивів, а обмеженням є лише кількість дисків. Наприклад, якщо їх чотири, можна зробити з двох дзеркало RAID1, а другу пару зібрати в RAID0.

Зверніть увагу, що власне прошивка встановлюється на кожен з дисків, це дозволяє підвищити стійкість до відмови і реалізувати можливість по міграції і розширенню масивів без втрати даних методом послідовної заміни дисків в RAID1/RAID5.

Крім системного розділу, зазвичай є і розділ підкачування, так що загальний корисний користувачеві обсяг виходить дещо меншим. Але втрата 2-4 ГБ на дисках в 1 ТБ – не дуже суттєва.

Для форматування вінчестерів потрібно спочатку потрапити до web-інтерфейсу пристрою. Це можна зробити з Synology Assistant або просто відкривши адресу/ім'я накопичувача в браузері. Після введення імені та пароля ви отримаєте доступ до налаштувань.

Далі переходимо до настроювання дискових томів. Якщо у вас один вінчестер, то варіант тут теж тільки один - "Basic", точніше є ще "Synology Hybrid Raid", який автоматично вибирає найзручнішу конфігурацію дисків і дозволяє легко додавати нові диски без втрати інформації. Для дводискової моделі, що розглядається, він дещо надмірний. Так що якщо ставите два диски, то краще вибрати класичні JBOD - об'єднання двох дисків в один великий том, RAID0 - масив з чергуванням для об'єднання в один том і збільшення продуктивності або RAID1 - два диски є дзеркальними копіями один одного, забезпечуючи відмовостійкість до несправності одного їх, щоправда корисний обсяг у разі дорівнює одному диску. Іноді краще навіть просто зробити два незалежні "Basic" томи, а для важливих даних налаштувати автоматичне резервування з одного диска на другий.

В останніх версіях прошивок Synology з'явилася можливість поділу кожного диска на кілька частин та організація масивів вже з них. Це значно підвищує гнучкість зміни. Оскільки в інших виробників такої можливості (поки що?) немає, то зробимо все по-старому - один диск в один том.

На останньому кроці пристрій запропонує повністю просканувати масив поганих блоків після створення. Незважаючи на те, що сучасні вінчестери відрізняються винятковою надійністю, краще від цього не відмовлятися.

Створення загальних ресурсів та визначення прав

Наступним етапом після створення дискового тому буде програмування користувачів системи. Звичайно, можна спробувати працювати виключно під обліковим записом адміністратора, але це не дуже зручно. Другою крайністю буде дозвіл гостьового доступу, тож ніякої перевірки не проводитиметься зовсім. Але ми б таки рекомендували навіть для дому та простої мережі використовувати «повну версію» - з іменами та контролем доступу.

Найзручнішим варіантом буде використання логінів та паролів, що повністю збігаються з обліковими записами в Windows. Це унеможливить зайві запити при зверненні до мережевих ресурсів. Також буде корисним створити користувачів, наприклад, для медіаплеєрів, так що їм можна було виділити права «тільки читання» на деякі ресурси, щоб уникнути ризиків втрати даних. І не забудьте змінити пароль адміністратора мережного накопичувача.

Якщо користувачів багато, можна також використовувати організацію груп для більш простого керування правами. Для дому це зазвичай надмірно.

Права користувачам видаються не повністю на створений дисковий том, а на спільні папки на ньому. Тож і їх теж треба запрограмувати. У деяких випадках вони автоматично з'являються після створення тома або увімкнення деяких сервісів (наприклад, медіаплеєра).

У нашому випадку ми зробимо папку public і призначимо для неї права користувачам.

Доступ до накопичувача з ПК

Після описаних вище операцій, основний сценарій мережного накопичувача – читання та запис файлів по мережі – вже можна починати використовувати.

Згадаймо трохи практичних особливостей мереж Windows. Основний сучасний мережевий протокол – TCP/IP – дозволяє учасникам лише обмінюватися пакетами. Так, для реалізації різних сервісів поверх нього необхідно використовувати протоколи вищого рівня. Не вдаючись у подробиці - "Мережа"/"Мережеве оточення" у Windows, CIFS, SMB, SAMBA - все це означає можливість обміну файлами між мережевими пристроями та мережевий друк. Реалізація цього протоколу можлива не тільки на Windows ПК, а й, наприклад, медіаплеєрах, телевізорах, супутникових ресіверах, IP-відеокамерах і, звичайно, інших ОС, наприклад Linux або Mac OS (аналогічний стандартний/загальний протокол для цієї ОС називається AFP ). У більшості випадків ці протоколи працюють лише у локальному сегменті вашої домашньої мережі.

Для доступу до ресурсу необхідно знати ім'я сервера та ім'я спільної папки на ньому. У «Провіднику» Windows достатньо написати в рядку адреси «ServerFolder» - і ви потрапляєте в папку Folder, розташовану на сервері Server. У нашому випадку потрібно писати \DiskStationpublic. Якщо ваше ім'я та пароль користувача в Windows записані в NAS і права на цю папку у вас є (або включений гостьовий доступ) - то ви побачите її вміст, якщо ж ні - сервер запитає ім'я і пароль. Зверніть увагу, що в мережі Windows на різні ресурси одного сервера одночасно можна звертатися тільки з одним ім'ям і паролем.

Часто зручно мати постійно підключені локальні «літери» для доступу до мережевих ресурсів. Це теж зробити нескладно - відкриваєте у провіднику \ DiskStation, на іконці "public" натискаєте ліву кнопку мишки і вибираєте "Підключити". За наявності галочки у вікні «Відновлювати при вході в систему» ​​- у вас завжди на вибраній літері буде доступ до цієї спільної папки (якщо накопичувач, зрозуміло, увімкнений). До речі, для цієї операції можна використовувати Synology Assistant.

Додаткові налаштування NAS

Коротко опишемо, які ще дії слід зробити після першого запуску мережного накопичувача.

Може виявитися, що у вашій домашній мережі використовується ім'я робочої групи, відмінне від класичного «WORKGROUP». Тоді бажано і у мережного накопичувача змінити його. Робиться це в налаштуваннях протоколу Windows – «Панель керування – Win/Mac/NFS». Якщо мережевий накопичувач - єдиний пристрій, що постійно працює, то можна активувати на ньому функцію «Local Master Browser», яка підвищить стабільність роботи мережевого оточення Windows. На ім'я або IP-адресу пристрою можна знайти завжди, але власне їх список у вікні «Мережа» може іноді бути неповним.

Якщо планується надавати доступ до NAS з Інтернету, то бажано включити автоматичне блокування при спробі підбору пароля. Це дозволить вам не побоюватися атак хакерів-початківців.

Також обов'язково потрібно включити доступ до web-інтерфейсу зашифрованим протоколом HTTPS, причому бажано навіть вказати обов'язковість його використання. Робиться це на вкладці "Панель керування - Налаштування DSM".

Зверніть увагу, що більшість сучасних браузерів при роботі з HTTPS швидше за все буде «лаятися» на мережевий накопичувач. Справа в тому, що сертифікат SSL, який він використовує, є самопідписаним, тобто перевірити його походження через світові центри сертифікації неможливо. Зазвичай у цьому випадку браузер запропонує вам включити цей сервер до списку «довірених» самостійно. Для роботи в комерційному сегменті ви можете інсталювати в мережевий накопичувач сертифікат, що офіційно отриманий від довіреного центру.

Як і роутер, мережевий накопичувач вміє надсилати повідомлення електронною поштою у разі виникнення проблем. Використовувати цю опцію можна з багатьма доступними поштовими сервісами, які підтримують SMTP.

Більшість пристроїв мають опції з управління живленням - наприклад, відключення вінчестерів у разі відсутності активності або навіть програмування розкладу роботи. Суперечки про те, який режим роботи – постійний або з відключеннями – «корисніший» для вінчестера, не вщухають досі. Однозначної поради тут дати не можна. Ми б рекомендували дивитися по ситуації - якщо накопичувач використовується більш ніж кілька разів на добу, краще залишити диски увімкненими. Насправді сучасні диски дуже надійні і якщо їх не кидати у включеному стані, служать дуже довго і за часом, і за циклами включення/вимкнення.

До речі, для підвищення надійності радимо підключати мережевий накопичувач (та й інше обладнання теж) через джерело безперебійного живлення. Вибрати його модель можна за списками сумісності NAS, тоді при з'єднанні USB-пристроїв, ДБЖ зможе повідомити накопичувачу про проблеми і при необхідності безпечно вимкнути його.

Доступ до файлів з Інтернету

Як вправи по спільному використанню роутера та NAS опишемо один з варіантів організації повного та безпечного доступу до ваших файлів з Інтернету.

Synology має для цього дуже зручну можливість - вбудований файловий менеджер FileStation. Для нього потрібно увімкнути протокол HTTPS. Порт можна залишити за замовчуванням 7001, але у випадку, коли роутер не вміє працювати з різними зовнішніми та внутрішніми портами, краще все-таки поміняти на щось менш «звичайне».

Контроль прав користувачів Synology стосується і додаткових сервісів, так що треба переконатися, що FileStation дозволений для потрібних людей.

Наступні дві дії проводиться вже на роутері. Спочатку ми призначаємо на сторінці властивостей сервера DHCP жорстку прив'язку MAC-адреси мережного накопичувача одному з IP-адрес діапазону локальної мережі. Це дозволить нам бути впевненими в тому, що IP-адреса після перезавантаження не зміниться.

Ну і останній штрих – призначення трансляції зовнішнього порту на FileStation. У нашому прикладі ми вибрали зовнішній порт 39456 та перевели його на внутрішній 7001 на адресу 192.168.1.40 мережного накопичувача.

На цьому налаштування закінчено. Тепер з будь-якої точки інтернету ви можете звернутися до своїх файлів через браузер, набравши в рядку адреси посилання «https://myhost.homedns.org:39456» (адреса взята як приклад з попередньої статті) та вказавши ім'я та пароль користувача

У наступному матеріалі ми розглянемо роботу з додатковими сервісами мережного накопичувача.

Android використовує файлову систему, схожу до системи на основі дискових файлових систем на інших платформах. Цей урок описує, як працювати з файловою системою Android, щоб читати та записувати файли, використовуючи File API.

Виберіть внутрішнє або зовнішнє сховище

Всі Android пристрої мають дві області зберігання файлів: "внутрішнє" та "зовнішнє" сховище. Ці назви прийшли з перших днів Android, коли пропонувалося, що більшість пристроїв надають вбудовану постійну незмінну пам'ять (внутрішнє сховище), а також носій, що знімається, таке як мікро SD карта (зовнішнє сховище). Деякі пристрої поділяють місця постійного зберігання "внутрішні" і "зовнішні" розділи, тобто. навіть без знімного носія, завжди є два сховища, і поведінка API для зовнішнього сховища така ж, незалежно від того, чи воно є знімним чи ні. Наступні списки узагальнюють факти кожного сховища.

Внутрішнє сховище:

  • Завжди є.
  • Файли, збережені тут, за замовчуванням, доступні лише вашій програмі.
  • Коли користувач видаляє вашу програму, система видаляє всі файли вашої програми з внутрішньої пам'яті.

Внутрішнє сховище краще, коли ви хочете бути впевнені, що ні користувач, ні інші програми не можуть отримати доступ до файлів.

Зовнішнє сховище:

  • Не завжди доступно, оскільки користувач може змонтувати зовнішній накопичувач як USB сховища, і в деяких випадках вийняти його з пристрою.
  • Читання дозволено всім, тому файли, збережені тут, можна прочитати без контролю.
  • Коли користувач видаляє вашу програму, система видаляє файли вашої програми звідси, тільки якщо ви збережете їх у каталозі з getExternalFilesDir() .

Корисна порада: Хоча програми встановлюються у внутрішнє сховище за замовчуванням, можна вказати android:installLocation атрибут у маніфесті, щоб ваша програма могла бути встановлена ​​на зовнішній накопичувач. Користувачі цінують цю опцію, коли розмір APK дуже великий, і вони мають зовнішній простір для зберігання, що перевищує внутрішню пам'ять. Щоб отримати додаткові відомості, див. Шлях установки програми .

Отримайте дозволи для зовнішніх накопичувачів

Для запису на зовнішній накопичувач, ви повинні запросити дозвіл WRITE_EXTERNAL_STORAGE у вашому файлі маніфесту :

...

Увага: В даний час всі додатки мають можливість читати із зовнішніх накопичувачів без спеціального дозволу. Проте це зміниться у майбутньому релізі. Якщо ваша програма має прочитати зовнішній накопичувач (але не писати в нього), то вам потрібно буде оголосити дозвіл READ_EXTERNAL_STORAGE. Щоб переконатися, що ваша програма продовжувала працювати, як і очікувалося, ви повинні оголосити цей дозвіл зараз, перш ніж зміни набудуть чинності.

...

Однак, якщо ваш додаток використовує дозвіл WRITE_EXTERNAL_STORAGE, то також неявно має дозвіл на читання зовнішнього сховища.

Вам не потрібні дозволи для збереження файлів у внутрішнє сховище. Ваша програма завжди має дозвіл на читання та запис файлів у каталозі внутрішнього сховища.

Збережіть файл у внутрішньому сховищі

При збереженні файлу у внутрішнє сховище, ви можете запросити відповідний каталог, у вигляді об'єкта File, викликавши один із двох методів:

getFilesDir() Повертає File представляє собою внутрішній каталог вашої програми. getCacheDir() Повертає File представляє собою внутрішній каталог для тимчасових файлів кешу вашої програми. Будьте впевнені, видаляти файли по одному більше не потрібно, і реалізуйте розумну межу розміру об'єму пам'яті, який ви використовуватимете в будь-який момент часу, наприклад, 1 Мб. Якщо в системі виникає нестача місця, вона може видалити файли кешу без попередження.

Щоб створити новий файл в одному з цих каталогів, ви можете використовувати File() конструктор, передавши File наданий одним із вищевказаних методів, який вказує на ваш внутрішній каталог. Наприклад:

File file = new File(context.getFilesDir(), filename);

В якості альтернативи, ви можете викликати openFileOutput() для отримання FileOutputStream , який пише файл у вашому внутрішньому каталозі. Наприклад, як записати текст у файл:

String filename = "myfile"; String string = "Hello world!"; FileOutputStream outputStream; try ( outputStream = openFileOutput(filename, Context.MODE_PRIVATE); outputStream.write(string.getBytes()); outputStream.close(); ) catch (Exception e) ( e.printStackTrace(); )

Або, якщо вам потрібно кешувати деякі файли, слід використовувати createTempFile() . Наприклад, наступний метод витягує ім'я файлу з URL і створює файл з таким же ім'ям у внутрішній каталозі кешу вашої програми:

Public File getTempFile(Context context, String url) ( File file; try ( String fileName = Uri.parse(url).getLastPathSegment(); file = File.createTempFile(fileName, null, context.getCacheDir()); catch (IOException e) ( // Error while creating file ) return file;

Примітка: Каталог внутрішнього сховища вашої програми використовує ім'я пакета вашої програми, розміщуючись у спеціальному місці файлової системи Android. Технічно, інша програма може читати ваші внутрішні файли, якщо ви встановите для файлу режим доступу до читання. Проте інші програми також повинні знати ваше ім'я пакета та імена файлів. Інші програми не можуть переглядати ваші внутрішні каталоги, і не мають доступу до читання або запису, якщо явно не встановити дозволи для читання або запису. Так що, поки ви використовуєте MODE_PRIVATE для файлів у внутрішній пам'яті, вони не є доступними для інших програм.

Збережіть файл на зовнішньому накопичувачі

Оскільки зовнішнє сховище може бути недоступне - наприклад, коли користувач монтується сховище до ПК, або вийняв карту SD, яка забезпечує зовнішнє сховище - ви завжди повинні переконатися, що розділ доступний перед доступом до нього. Ви можете запросити стан зовнішнього сховища, викликавши getExternalStorageState() . Якщо повернутий стан дорівнює MEDIA_MOUNTED, то ви можете читати та писати файли. Наприклад, такі методи корисні визначення доступності сховища:

/* Checks if external storage is available for read and write */ public boolean isExternalStorageWritable() ( String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) ( return true; * Checks if external storage es available to at least read */ public boolean isExternalStorageReadable() ( String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEEA_ return true;) return false;)

Хоча зовнішній пристрій може змінюватися користувачем та іншими програмами, є дві категорії файлів, які ви могли б зберегти тут:

Загальнодоступні файли Файли, які мають бути у вільному доступі для інших програм та для користувача. Коли користувач видаляє вашу програму, ці файли повинні залишатися доступними для користувача.

Наприклад, фотографії, зроблені за допомогою програми, або інші завантажені файли.

Особисті файли Файли, які по праву належать до вашої програми, і їх слід видалити, коли користувач видаляє вашу програму. Хоча ці файли є технічно доступними користувачеві, та інших додатків, т.к. вони знаходяться на зовнішньому накопичувачі, це файли, які реально не являють собою цінності для користувача поза вашою програмою. Коли користувач видаляє вашу програму, система видаляє всі файли із зовнішнього приватного каталогу вашої програми.

Наприклад, додаткові ресурси завантажені додатком або тимчасові медіа-файли.

Якщо ви хочете зберегти загальнодоступні файли на зовнішньому пристрої зберігання, використовуйте метод для отримання файлу, що представляє відповідний каталог на зовнішньому накопичувачі. Метод приймає аргумент, який вказує тип файлу, який потрібно зберегти, щоб вони могли бути логічно організовані з іншими загальнодоступними файлами, такими як DIRECTORY_MUSIC або DIRECTORY_PICTURES . Наприклад:

Public File getAlbumStorageDir(String albumName) ( // Get the directory for user"s public pictures directory. File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) ( Log.e(LOG_TAG, "Directory not created"); ) return file;

Якщо ви хочете зберігати файли, які є приватними для вашої програми, ви можете запросити відповідний каталог, викликавши getExternalFilesDir() і передати йому ім'я, що вказує тип потрібного каталогу. Кожен каталог, створений у такий спосіб, додається до батьківського каталогу, який інкапсулює всі файли зовнішнього сховища вашої програми, які система видаляє, коли користувач видаляє вашу програму.

Наприклад, ось метод, який можна використовувати для створення каталогу окремого фотоальбому:

Public File getAlbumStorageDir(Context context, String albumName) ( // Get the directory for app's private pictures directory. File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs( )) ( Log.e(LOG_TAG, "Directory not created"); ) return file; )

Якщо жодне з визначених імен підкаталогів не задовольняє ваші файли, ви можете натомість викликати getExternalFilesDir() і передати null . При цьому повертається кореневий каталог для приватних каталогів вашої програми на зовнішньому накопичувачі.

Незалежно від того, чи використовуєте ви getExternalStoragePublicDirectory() для файлів, які є спільними або getExternalFilesDir() для файлів, які є приватними для вашої програми, важливо, що ви використовуєте імена каталогів, що надаються константами API, такими як DIRECTORY_PICTURES . Ці імена каталогів гарантують, що файли інтерпретуватимуться системою належним чином. Наприклад, файли, збережені в DIRECTORY_RINGTONES, класифікуються за системою медіа сканера як мелодії дзвінка замість музики.

Запитайте вільний простір

Якщо ви знаєте заздалегідь, скільки даних ви будете зберігати, ви можете з'ясувати, чи є наявність достатньо місця, не викликаючи IOException за допомогою виклику getFreeSpace() або getTotalSpace() . Ці методи надають інформацію про поточний доступний простір і загальний простір розділу, відповідно. Ця інформація також корисна, щоб уникнути заповнення розділу накопичувача вище за певний поріг.

Проте система не гарантує, що ви можете записати стільки байт, скільки позначено getFreeSpace() . Якщо число, що повертається, на кілька МБ більше, ніж розмір даних, які ви хочете зберегти, або якщо файлова система заповнена менше ніж на 90%, то, напевно, можна продовжити. Інакше, мабуть, не варто записувати у сховище.

Примітка: Ви не повинні перевіряти кількість вільного місця, перш ніж зберігати файл. Натомість, ви можете спробувати записати файл, і зловити IOException якщо воно відбудеться. Можливо, вам доведеться зробити так, якщо ви не знаєте точно, скільки потрібно місця. Наприклад, якщо ви зміните кодування файлу перед збереженням шляхом перетворення PNG зображення на JPEG, ви не будете знати розмір файлу заздалегідь.

Видалення файлу

Ви повинні видалити файли, які вам більше не потрібні. Найпростіший спосіб видалити файл це викликати delete() .

MyFile.delete();

Якщо файл збережено у внутрішньому сховищі, ви також можете попросити Context знайти та видалити файл, викликавши deleteFile() :

MyContext.deleteFile(fileName);

Примітка: Коли користувач видаляє вашу програму, Android система видаляє наступне:

  • Усі файли, збережені у внутрішньому сховищі
  • Всі файли, збережені на зовнішньому накопичувачі за допомогою getExternalFilesDir() .

Тим не менш, ви повинні видалити вручну всі файли з кешу, створені за допомогою getCacheDir() на регулярній основі, а також регулярно видаляти інші файли, які вам більше не потрібні.

Хмарні послуги зберігання даних стали справжньою панацеєю для всіх, хто хотів отримувати доступ до своїх даних з будь-якого пристрою з будь-якої точки простору. Ми з радістю перемістили свої дані в хмари та успішно користуємося ними, лише іноді з побоюванням читаючи чергову новину про хаки iCloud та Dropbox. Комусь спочатку не дає спокою той факт, що хмара контролює хтось, але не сам користувач. Саме такі ентузіасти зробили OwnCloud.

Що це таке

«Власна хмара» є нічим іншим, як персональним сховищем, що працює на власному веб-сервері або сайті. Головна фішка OwnCloud у тому, що він безкоштовний та опенсорсний. Загалом за наявності вищезгаданого майданчика для розміщення користувачеві знадобиться приблизно 5 хвилин на розгортання власного Dropbox-like сховища, і без хитромудрого кодингу – якихось специфічних знань не потрібно. На додаток користувач отримує доступ до додатків (текстові редактори, списки завдань та інші корисні штуки), які створюють інші учасники проекту для власних потреб.

Facebook Google PlusЗаборона доступу або проблема з дозволом на доступ до файлу/папки на зовнішньому диску

Іноді при підключенні зовнішнього диска до комп'ютера з ОС Windows 2000 Pro, XP або Vista доводиться надавати дозволи/привілеї. Оскільки файли належать до іншого облікового запису, при спробі відкрити диск або папку на ньому може з'явитися помилка "Доступ заборонено" або "Недоступно".

Відомості про передачу права власності поточному користувачу в XP Professional див. нижче. Ці інструкції стосуються Windows Vista .
(XP Home.)

Щоб передати права володіння поточному користувачу Windows XP HOME :

  • Завантажтеся у безпечному режимі.
  • Клацніть правою кнопкою миші потрібний файл/папку та відкрийте розділ Properties (Властивості).
  • Натисніть Security (Безпека) > Advanced (Додатково) > Owner (Власник) і перейдіть до облікового запису користувача на комп'ютері, який має стати власником цих файлів і папок.
    Встановіть прапорець "Replace owner on subcontainers and folders (Замінити власника підконтейнерів та об'єктів)", щоб усі файли в папці могли успадковувати зміни (тільки при зміні дозволів папки).
  • При появі повідомлення "Ви не маєте дозволу на читання вмісту папки [ ім'я папки]. Бажаєте замінити дозволи цієї папки так, щоб мати права повного доступу? Усі дозволи будуть замінені, якщо натиснути кнопку "Так" натисніть кнопку Так .
  • Див. наступні статті центру підтримки Microsoft:

    Якщо роздільну здатність не вдається змінити, перевірте, чи не зашифровані файли за допомогою функції шифрування Windows. Замість звичайного чорного у них буде зелений шрифт:

    Для відновлення цих файлів потрібно знову підключити диск до комп'ютера. Файли зашифровані без використання програмного забезпечення Seagate. Для отримання додаткових відомостей див. наступні статті бази знань Microsoft:

    Нарешті, можливе пошкодження файлової структури.

    • Запустіть перевірку диска , щоб усунути пошкодження.
    • У разі пошкодження розділу виконайте наведені вище дії.

    ВКАЗІВКА СТОРІННИХ РОЗРОБНИКІВ І ВЕБ-САЙТІВ. Компанія Seagate вказує сторонніх розробників і сторонні продукти виключно з інформаційною метою, не віддаючи переваги і не даючи рекомендацій (прямо чи опосередковано) жодній із згаданих компаній. Компанія Seagate не дає жодних гарантій (включаючи непрямі та будь-які інші) щодо продуктивності та надійності таких компаній та продуктів. Компанія Seagate не пов'язана з жодною зі згадуваних компаній і не контролює їх роботу, тому не бере на себе жодної відповідальності у зв'язку з ними і відмовляється від будь-яких зобов'язань щодо дій або продукції згаданих компаній. Перш ніж вести відносини з будь-якою компанією, проведіть власну незалежну оцінку. За технічними характеристиками та інформацією про гарантію звертайтеся безпосередньо до відповідного виробника. Цей документ містить посилання на веб-сайти сторонніх компаній, які Seagate не контролює. Такі посилання наводяться для зручності та використовуються на власний ризик користувача. Seagate не дає жодних гарантій щодо матеріалів, представлених на таких веб-сайтах, не підтверджує їх і не бере на себе жодної відповідальності за них або за користування згаданими веб-сайтами.

    Nafa 647 14.01.10 02:27 Зараз у темі

    Стаття корисна.
    У роботі сховища справді дуже багато неочевидних речей, тому мої доповнення:
    1. Якщо працюють кілька програмістів, то варіант,
    робочий день зазвичай починається з наступного:
    запускаємо свою базу в конфігураторі, на корені конфігурації правою кнопкою мишки - одержати зі сховища, включаємо галочку "рекурсивно", тиснемо ОК. Після цього конфігурацію отримуємо все, що напрацювали інші зі сховища. САМУ БД НЕ оновлюємо!
    Далі бажаємо "порівняти конфігурацію з конфігурацією БД" - і бачимо список всіх змін, зроблених іншими програмістами групи за попередній день. Якщо є питання щодо змін - звертаємося до того, хто їх робив.
    Після того, як усі розібрали – зберігаємо у БД.
    Чому не порівняти з конфігурацією сховища - по-перше, щоб не показувалися ті об'єкти, над яким сам працюєш, по-друге, це працює швидше.
    2. У середині дня: термінові зміни (для динамічного оновлення) відправляємо до сховища одразу. Чи не термінові - після того, як змінимо всі пов'язані об'єкти. (Див. пояснення нижче)
    3. Наприкінці дня (а якщо треба робити повне оновлення бази – то перед ним) здаємо у сховище все, що можна.
    Це не обов'язковий порядок, але дуже зручний.

    4. Чому не поміщаємо відразу:
    тому що цілісність змін контролюється 1С тільки там, де є посилання. Тобто якщо, наприклад, ви зробили довідник "Автомобілі клієнтів" і додали посилання на нього в "витратну накладну", то помістити "Витратну накладну" у сховище Ви зможете тільки після (або одночасно) з довідником "Автомобілі клієнтів". Але якщо Ви використовували цей довідник у процедурі загального модуля, яка викликається при проведенні видаткової накладної, то цей загальний модуль у сховищі спокійно поміститися без приміщення довідника. Якщо після цього інший програміст отримає цей модуль зі сховища, то його базі видаткові накладні проводитися перестануть. (А якщо оновити основну базу – то й там перестануть).
    І то ще добрий випадок - тому що виникає просто помилка. А ось якщо Ви, наприклад, змінили тип реквізиту в документі з рядка на текст і в процедурі загального модуля була перевірка Якщо Реквізит = "1" а стала Якщо Реквізит = 1 і модуль у сховищі помістили а документ - ні, то помилки не буде контролю типів), а значить у тих хто такий модуль отримає документи неправильно проводитиметься, (і добре якщо це буде не основна база). Тому зміни краще здавати в сховище "повним пакетом" (усі змінені на одну тему об'єкти), якщо щось потрібно Вам для іншого завдання - можна відразу ж захопити по новому або просто, поміщаючи в сховище, "залишити захопленим".

    У цьому плані я не зовсім зрозумів:

    Якщо програмістів багато - то зміни кожного потрібно відправляти в Сховище по черзі, ПОПЕРЕДНО вивантаживши у всіх роботу в зовнішні файли з конфігурацією локальної БД і (якщо об'єднання робиться з різних робочих місць), не забуваючи перед кожним об'єднанням оновлювати локальні БД з сховища , з присутніми там змінами раніше підключених товаришів.

    Дивно, не було жодних проблем, коли кілька людей одразу зміни поміщали, хіба що пригальмовувало трохи. На те захоплення об'єктів і передбачено, щоб 2 особи відразу одне й те саме не виправили. Причому було помічено, що: якщо 1 розробник змінив документ, скажімо "Авансовий звіт", а потім другий "отримання" не робив, а відразу його захоплює (наприклад, об'єкт щойно поміщений у сховище), то 1С це відстежить і сама дасть йому вже нову – змінену версію. (Так прикольно буває – дивишся на документ – 5 реквізитів, захоплюєш – уже 15).

    І навіщо роботу у зовнішні файли вивантажувати також не зрозумів.

    4. Створення копій бази для програмістів простіше робити не 1совським завантаженням-вивантаженням (т.к. вона вимагає монопольного режиму і не дуже спритна), а відновленням вилицюватого бекапа або просто копіюванням базі на вилиці.

    5. Якщо потрібно додати новий об'єкт (документ, довідник тощо), то захопіть корінь конфігурації, додайте його, додайте мінімум реквізитів (зовсім "порожні" об'єкти не завжди зберігається), здайте корінь у сховищі (цей об'єкт теж здасться при цьому) і заберіть об'єкт знову. (Щоб не тримати корінь довго захопленим – він та іншим потрібен).

    6. Якщо Ви хочете виправити права доступу на об'єкт, захопили його - а права доступу, як і раніше, недоступні - захопіть відповідну роль.

    7. Оскільки налагодження найкраще вести на максимально свіжих даних, то робочі бази потребують оновлення. Для цього: помістіть усі зміни в сховищі, відключіть базу від сховища, перепишіть у неї на вилиці основну базу (з бекапа або просто скопіюйте), підключіть по-новій.

    8. Коли робимо "отримати все зі сховища" (п. 1) буває, що 1с видає купу повідомлень, а потім пише, що "не вдалося" (список об'єктів при цьому змінюється). Значить, давно не отримували зміни. Нічого страшного, тиснемо ОК по новій і так доти, доки не спрацює, як треба.

    9. Іноді 1С відмовляється зберігати отримані зі сховища зміни, причому повідомлення видає абсолютно невиразне. Винуватцями зазвичай є "реєстри відомостей". З'ясовуємо, у якого регістру відомостей змінювалася структура, видаляємо з нього у своїй основі всі записи, після чого все оновиться як слід.

    10. Оскільки робочі бази робляться з основної, то назви конфігурацій збігаються і їх легко переплутати і потім починаються незрозумілі, коли користувачеві каже що у нього у звіті 100 руб, а у Вас - 100,000 руб. Як варіант, додаємо в модуль програми рядок, що перевіряє при запуску програми що це за база і якщо не основна - що виводить це в заголовку програми 1С (наприклад "РОБОЧА БАЗА ПРОГРАМІСТА ІВАНОВА")

    11. Коли база підключена до сховища, але при запуску не вдалося до нього підключитися з будь-яких причин, то може видатись повідомлення "Не вдалося підключитися, виконати відключення від сховища" (а у Вас є захоплені об'єкти) - тут ВІДПОВІДАЙТЕ "НІ". Але якщо випадково відповісти "так" - не намагайтеся підключитися по новій!!! Спочатку збережіть конфігурацію у файл! Оскільки коли підключаємося до сховища, вся конфігурація бази замінюється на конфігурацію сховища. Після цього завантажуємо зміни зі збереженого файлу та працюємо далі.