Строим домашнюю сеть. Сетевой накопитель

Фон

У Android было много изменений относительно того, как обращаться с SD-картой и хранилищем в целом:

  • API 3 - вы получаете доступ, не требуется разрешение
  • API 4-15 - вам нужно использовать WRITE_EXTERNAL_STORAGE, и вы получите доступ.
  • API 16-18 - если вы хотите только читать, используйте READ_EXTERNAL_STORAGE
  • API 19-20 - вы не можете читать или записывать на вторичное внешнее хранилище (SD-карту), если ваше приложение не является системным приложением или у вас есть root.
  • API 21-22 - чтобы получить доступ к SD-карте, вам нужно попросить у пользователя разрешения и использовать API DocumentFile вместо File API. Это вызвало множество вопросов, поскольку я писал о , и .

Начиная с API 23 (Android 6), похоже, что все снова меняется...

Проблема

Для API 23 есть как минимум 2 вещи, которые новы и связаны с памятью:

  • " . Пользователь может по желанию сделать SD-карту чем-то вроде первичное внешнее хранилище.
  • Как часть нового механизма разрешений (запрашивая разрешения во время выполнения), похоже, что хранилище также разрешение, которое пользователь должен подтвердить. Это для READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE

Так как у Android нет устройства с SD-картой, и поскольку сам эмулятор действительно не имеет возможности использовать SD-карту, все еще невозможно узнать, что происходит.

Вопросы

    Будет ли SD-карта получить доступ с использованием File-API вместо DocumentFile?

    Если мне нужен доступ ко всем внешним путям хранения (включая SD-карту), значит ли это, что мне нужно дважды запрашивать эти разрешения: один для основного внешнего хранилища и один для SD-карты?

    Доступны ли файлы на SD-карте каким-либо образом до предоставления разрешения на использование вручную?

    Предположим, что пользователь решил использовать "Adoptable Storage Devices" , что это означает для различных функций, которые извлекают пути к файлам приложений? Например: getFilesDir, getExternalFilesDir,...? Из-за этого изменилось бы другое из getExternalFilesDirs?

    Что происходит с файлами приложения, когда пользователь перемещает приложение с/на SD-карту (используя "Adoptable Storage Devices")? Как насчет файлов приложений на SD-карте? Останутся ли они? Или они куда-нибудь переместятся?

    Например, если приложение имеет файл "file1.txt" на SD-карте, на пути "/storage/extSdCard/Android/data/appPackageName", и у него есть файл "file2.txt" (или даже одно и то же имя) на основном внешнем хранилище по пути "/storage/emulated/0/Android/data/appPackageName". После переключения, что произойдет для этих файлов? Как бы они слились в одну папку, если вообще?

    При перемещении приложения на SD-карту (используя "Adoptable Storage Devices") означает ли это, что внутреннее хранилище не будет использоваться?

    1 ответ

    Позвольте мне ответить на Удостоверяемые устройства хранения :

    1. Предположим, что пользователь решил использовать "Adoptable Storage Devices" , что это означает для различных функций, которые извлекают пути файлы приложений? Например: getFilesDir, getExternalFilesDir,...? Из-за этого изменится другой из getExternalFilesDirs?

    Когда пользователь выбирает использовать SD-карту как "Adoptable Storage Device" (формат как внутренний), теперь это означает, что SD-карта доступна только в качестве внутреннего хранилища, то есть нет SD-карты, доступной для хранения загруженных файлов. Изменения путей в путях, возвращаемых связанными методами, не будут. Например: getExternalFilesDir() будет отображать только внешний путь хранения, если пользователь отформатировал свою SD-карту как "Adoptable Storage Devices" . Путь к карте SD не будет доступен.

    1. Что происходит с файлами приложения, когда пользователь перемещает приложение с/на SD-карту (используя "Adoptable Storage Devices")? Какие о файлах приложений на SD-карте? Останутся ли они? Или они двигаться где-то? Например, если приложение имеет файл "file1.txt" на SD-карта, по пути "/storage/extSdCard/Android/data/appPackageName", и он имеет файл "file2.txt" (или даже одно и то же имя) на первичном внешнее хранилище на пути "/Хранение/эмулировать/0/Android/данные/appPackageName". После переключения, что будет с этими файлами? Как они слились бы в один папка, если вообще?

    Когда пользователь выбирает свою SD-карту в качестве "Adoptable Storage Devices" , пользователю необходимо отформатировать SD-карту как внутреннее хранилище, используя "Формат как внутренний" . Формат означает, что все данные/файлы, хранящиеся на SD-карте, будут удалены. Аналогично, когда пользователь хочет удалить свою SD-карту из "Adoptable Storage Devices" , пользователю снова нужно отформатировать свою SD-карту в качестве переносного хранилища, используя опцию "Формат как переносная" .

    С помощью OneDrive вы можете обмениваться фотографиями, документами Microsoft Office, другими файлами и целыми папками. Файлы и папки, которые хранятся в OneDrive являются частными, пока вы не предоставите к ним общий доступ. Вы можете прекратить доступ в любое время.

    Примечание: Общий доступ ограничен в базовой или предназначенной только для хранения версии OneDrive. Ограничения сбрасываются через 24 часа, но вы можете для повышения предельного объема файлов общего доступа и получения дополнительных функций общего доступа.

    Создание ссылки

    Однако этим ссылкам по умолчанию присвоено разрешение на изменение. Если нужно предоставить пользователю только разрешение на просмотр, потребуется использовать веб-сайт OneDrive, чтобы создать ссылку (или изменить созданную).

    Электронная почта

    Выберите этот вариант, если хотите отправить приглашение по электронной почте пользователям или группам, а затем отслеживать, кого вы пригласили. Это также позволяет в дальнейшем при необходимости удалить разрешение.


    Примечания:

    Предоставление получателям дополнительных возможностей контроля и совместной работы в общих папках

    Если вы делитесь папками и предоставляете разрешения на редактирование, пользователи, получившие доступ, могут добавить общие папки в свои собственные хранилища OneDrive . Это позволит им хранить такую папку вместе с собственными папками и элементами, легко перемещать элементы между папками и с комфортом работать с ними в автономном режиме. Все внесенные ими изменения синхронизируются с общей папкой, поэтому каждый, кто имеет доступ к папке, получает актуальную версию элементов.

      Чтобы предоставить общий доступ к папке с помощью ссылки : щелкните Получить ссылку и в окне Общий доступ выберите Любой пользователь, у которого есть ссылка, может изменять этот элемент .

      Чтобы предоставить общий доступ к папке по электронной почте : выберите Отправить по электронной почте и в окне Общий доступ выберите Можно изменять .

    Совет: Получатель сможет добавить в свое хранилище OneDrive общие папки, а не отдельные файлы. Если вы хотите, чтобы получатель добавил в OneDrive файлы, сначала поместите их в папку, а затем предоставьте к ней доступ.

    Просмотр перечня элементов, которыми вы поделились

    В OneDrive.com выберите на панели слева пункт Общие , а затем нажмите Я делюсь .

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

    Создание копируемой ссылки на файл или папку

    Другой способ предоставить общий доступ - создать ссылку на файл или папку, которую можно скопировать и вставить в текстовом сообщении или на веб-сайте. Пользователи, которым вы предоставляете доступ к этим ссылкам, могут пересылать их другим.

    Примечания:

    Предоставление общего доступа в мобильном приложении OneDrive

    Дополнительные сведения см. в следующих статьях:

    Дополнительные сведения

    Справка в Интернете
    См. другие страницы справки по OneDrive и OneDrive для бизнеса .
    Сведения о мобильном приложении OneDrive см. в статье Устранение неполадок с мобильным приложением OneDrive .

    Поддержка по электронной почте
    Если вам нужна помощь, встряхните мобильное устройство, когда на нем открыто приложение OneDrive, или отправьте сообщение группе поддержки OneDrive по электронной почте . Чтобы обратиться в службу поддержки OneDrive для бизнеса, на ПК с Windows или компьютере Mac щелкните значок OneDrive в области уведомлений либо строке меню, а затем выберите Другое > Отправить отзыв > Мне кое-что не нравится .

    OneDrive для бизнеса Также для администраторов могут быть полезными сообщество Tech Community по вопросам OneDrive для бизнеса , справка для администраторов OneDrive для бизнеса и обращение в службу поддержки Office 365 для бизнеса .

    Хотя ресурсы прекрасно подходят для хранения изображений и звуков нашего приложения, иногда необходимо сохранять информацию и позже загружать ее вновь. Простой пример – работа с таблицей лучших результатов.

    Android предлагает различные способы для реализации этого; вы можете использовать общие настройки приложения, маленькую базу данных SQLite и т. д. У всех этих возможностей есть общая черта – они не обрабатывают большие двоичные файлы. Для чего нам это может понадобиться? Хотя мы можем указать системе, чтобы она устанавливала приложение во внешнее хранилище (и таким образом не тратить память внутреннего хранилища), это будет работать только в версиях Android начиная с 2.2. В более старых версиях ОС все данные приложения будут храниться во внутренней памяти устройства. Теоретически мы могли бы включить код нашего приложения в АРК-файл и загружать все ресурсы с сервера на карту памяти SD при первом запуске программы. Многие известные игры для Android так и делают.

    Существуют и другие сценарии, в которых нам необходим доступ к карте памяти (которая, в общем-то, является синонимом термина внешнее хранилище для современных устройств). Мы могли бы позволить нашим пользователям создавать собственные уровни во внутреннем редакторе. После создания нам будет необходимо их где-то хранить, и SD-карта прекрасно для этого подходит. Итак, мы не будем использовать необычные механизмы, предлагаемые Android для хранения настроек приложения, и рассмотрим вместо этого механизм реализации чтения и записи файлов на карте SD.

    Первое, что нам необходимо сделать, – запросить разрешение на доступ к внешнему хранилищу. Это делается в файле манифеста с помощью уже рассмотренного нами элемента .

    Далее нужно проверить, доступно ли нам в данный момент внешнее хранилище. Например, при работе с AVD у вас есть возможность обойтись без эмулирования наличия карты памяти – тогда приложение ничего не сможет туда записывать. Другая причина не получать доступ к SD-карте – его занятость другим процессом (например, просмотра его пользователем через USB). Вот так мы проверяем состояние карты памяти;

    В результате мы получаем строку. Класс Environment определяет набор констант, одна из которых называется Environment. MEDI AMOUNTED (ее значение – тоже строка). Если вышеуказанный метод возвращает именно эту константу, это значит, что мы имеем полный доступ (чтение и запись) к внешнему хранилищу. Обратите внимание – на самом деле вам необходимо использовать метод equals для сравнения двух строк; оператор равенства в таких случаях не всегда дает верные результаты.

    Итак, мы узнали, что обладаем полным доступом к внешнему хранилищу, и теперь нам необходимо получить название его корневой директории. Если нам нужен доступ к определенному файлу, путь к нему необходимо определять относительно корневого каталога. Для этого мы применим другой статический метод класса Environment:

    С этого момента мы можем использовать стандартные Java-классы для чтения и записи файлов. Создадим небольшой пример, реализующий запись файла на карту памяти, его чтение, демонстрацию его содержимого в TextView и удаление его с карты. В листинге 4.8 показан исходный код для этого.

    Листинг 4.8. Активность ExternalStorageTest package com.bad.ogi с.androi dgames;

    Сначала мы проверяем физическую доступность SD-карты (если проверка не удалась, на этом все и заканчивается). Далее получаем корневой каталог хранилища и создаем новый экземпляр объекта File, указывающий на файл, который мы создадим в следующем выражении. Метод writeTextFi 1е использует стандартные Java-классы ввода-вывода для реализации наших целей. Если файл еще не существует, метод создаст его; в ином случае он перепишет существующий. После успешной записи текста в файл на карте мы вновь его считываем оттуда и устанавливаем в качестве содержимого TextVi ew. Финальный шаг – удаление файла из внешнего хранилища. Все действия совершаются с соблюдением необходимых мер предосторожности, благодаря которым сообщения о проблемах также выводятся в TextView. Рисунок 4.11 демонстрирует вывод активности.

    Из этого урока необходимо извлечь следующие моменты.

    Не работайте с файлами, которые вам не принадлежат. Пользователи очень рассердятся, если вы удалите фотографии с их последней вечеринки.

    Всегда проверяйте доступность внешнего хранилища.

    Не связывайтесь со служебными файлами во внешнем хранилище. Я серьезно.

    Рис. 4.11. Послание от веселого Роджера

    Увидев, как легко удалить все файлы из внешнего хранилища, вы должны подумать дважды, создавая и размещая на Android Market приложение, запрашивающее доступ к карте SD, – ведь после инсталляции оно будет иметь полный доступ ко всем файлам.

    Обработка звука

    Android предлагает простые в применении API для воспроизведения звуковых эффектов и музыкальных файлов – как раз то, что нам нужно для написания игры. Рассмотрим их.

    Файловая система Android очень похожа на файловые системы, основанные на дисках, используемые в других системах. В данном уроке рассказывается как работать с файловой системой Android, читать и записывать файлы, используя класс File .

    Выбор между внутренним и внешним хранилищем

    Все устройства под Android имеют два пространства для хранения файлов: внешнее и внутреннее хранилища. Эти названия остались от первых устройств на Android. На большинстве устройств применялась энергозависимая память (внутреннее хранилище ) и съемные устройства, вроде microSD карт (внешнее хранилище ). На некоторых устройствах постоянное место хранения делится между внутренним и внешним разделами, поэтому даже без SD карт у нас будет и “внутреннее” и “внешнее” пространство. При этом для API неважно располагается ли внешнее пространство на съемном устройстве или нет. В списке приведены общие факты об обоих типах пространства:

    • Внутреннее хранилище:
    • Всегда доступно.
    • По умолчанию доступ к файлам разрешен только для приложений, создавших эти файлы.
    • При удалении приложения, из внутреннего хранилища удаляются все файлы приложения.
    • Внутреннее хранилище лучше подходит, если вы хотите быть уверены, что другие приложения не получат доступ к данным.
    • Внешнее хранилище:
    • Не всегда доступно, поскольку пользователь может вытащить съемную память из устройства.
    • Файлы могут быть прочитаны любым приложением.
    • При удалении приложения файлы будут удалены только в том случае, если вы сохранили их в директории, полученной с помощью метода getExternalFilesDir() .
    • Внешнее хранилище – это отличное место для файлов, которые не нуждаются в особой секретности. Также во внешних хранилищах могут храниться файлы, которые могут быть открыты на компьютере пользователя или те, которые вы хотите использовать сразу в нескольких приложениях.

    Получение прав для внешнего хранилища

    Для записи во внешнее хранилище, вы должны запросить права WRITE_EXTERNAL_STORAGE в файле манифеста :

    ...

    < manifest . . . >

    < uses - permission android : name = "android.permission.WRITE_EXTERNAL_STORAGE" / >

    . . .

    < / manifest >

    Внимание: в настоящее время, все приложения имеют права на чтение файлов из внешнего хранилища без получения специального разрешения. Однако это изменится в будущих версиях. Если ваше приложение должно читать файлы из внешнего хранилища (но не писать), необходимо получить право READ_EXTERNAL_STORAGE . Чтобы гарантировать, что ваше приложение всегда будет работать так, как вы ожидаете, объявляйте права на чтение уже сейчас, чтобы не беспокоиться об этом в будущем:

    ...

    < manifest . . . >

    < uses - permission android : name = "android.permission.READ_EXTERNAL_STORAGE" / >

    . . .

    < / manifest >

    Однако если ваше приложение использует право на запись WRITE_EXTERNAL_STORAGE , права на чтение будут неявно заданы.

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

    Сохранение файлов во внутреннем хранилище

    При сохранении файлов во внутреннем хранилище, можно получить соответствующую директорию как объект типа File , вызвав один из методов:

    getFilesDir() Возвращает объект типа File представляющий директорию внутреннего хранилища для вашего приложения. getCacheDir() Возвращает объект типа File представляющий директорию внутреннего хранилища для хранения временных кэш файлов. Обязательно удаляйте все файлы, как только вы перестаете в них нуждаться и установите разумное ограничение на количество памяти, которое вы используете в определенный момент времени, например 1Мб. Если в системе останется мало места для хранения, она может удалить ваши временные файлы без предупреждения.

    Чтобы создать новый файл в одной из директорий, вы можете использовать конструктор File() , передав в него объект типа File, полученный с помощью соответствующего метода:

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

    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(); }

    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) { // Ошибка при создании файла } return file; }

    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 ) {

    // Ошибка при создании файла

    return file ;

    Примечание: расположение каталога внутреннего хранилища вашего приложения в файловой системе Android зависит от имени пакета. Технически, другое приложение может прочитать ваши внутренние файлы, если вы установите режим доступа для чтения. Однако другому приложению понадобится также знать название пакета вашего приложения и имя самого файла. Другие приложения не могут просматривать содержимое внутреннего хранилища и не имеют права чтения и записи, пока явно не указано что файл может быть прочитан или записан. Так что пока вы используете флаг MODE_PRIVATE для ваших файлов во внутреннем хранилище, они будут недоступны для других приложений.

    Сохранение файлов во внешнем хранилище

    Поскольку внешнее хранилище может быть недоступно – например при подключении устройства к компьютеру или при удалении SD карты, вы должны всегда проверять раздел на доступность, прежде чем попытаться его использовать. Вы можете запросить состояние внешнего хранилища с помощью метода getExternalStorageState() . Если метод вернул состояние, равное MEDIA_MOUNTED , вы можете читать и записывать ваши файлы. Пример метода проверки внешнего хранилища на доступность:

    /* Проверяем хранилище на доступность чтения и записи*/ public boolean isExternalStorageWritable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; } /* Проверяем внешнее хранилище на доступность чтения */ public boolean isExternalStorageReadable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { return true; } return false; }

    /* Проверяем хранилище на доступность чтения и записи*/

    public boolean isExternalStorageWritable () {

    if (Environment . MEDIA_MOUNTED . equals (state ) ) {

    return true ;

    return false ;

    /* Проверяем внешнее хранилище на доступность чтения */

    public boolean isExternalStorageReadable () {

    String state = Environment . getExternalStorageState () ;

    if (Environment . MEDIA_MOUNTED . equals (state ) ||

    Environment . MEDIA_MOUNTED_READ_ONLY . equals (state ) ) {

    return true ;

    return false ;

    Хотя содержимое внешнего хранилища может быть изменено пользователем или другим приложением, есть две категории файлов, которые вы можете в нем хранить:

    Публичные файлы Файлы, которые должны быть доступны другим приложениям и пользователям. После удаления приложения эти файлы должны оставаться доступными пользователю. Это, например, фотографии, сделанные в вашем приложении, или скачанные файлы. Приватные файлы Файлы, по праву принадлежащие приложению, которые должны быть удалены вместе с приложением. Хотя эти файлы технически доступны для пользователя и других приложений, поскольку они находятся во внешнем хранилище, реально они не предоставляют свои данные за пределами приложения. При удалении приложения, все такие файлы будут также удалены. Это, к примеру, временные медиа-файлы.

    Если вы хотите сохранить публичные файлы по внешнем хранилище, используйте метод getExternalStoragePublicDirectory() для получения объекта типа File соответствующего каталогу. В качестве аргумента метод принимает тип файла, который вы хотите сохранить, логически он может быть организован с другими публичными файлами, например каталоги музыки (DIRECTORY_MUSIC) или картинок (DIRECTORY_PICTURE). Например:

    public File getAlbumStorageDir(String albumName) { // Получение публичного каталога картинок File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) { Log.e(LOG_TAG, "Directory not created"); } return file; }

    public File getAlbumStorageDir (String albumName ) {

    // Получение публичного каталога картинок

    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) { // Получение приватной директории для фотоальбома приложения File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) { Log.e(LOG_TAG, "Directory not created"); } return file; }

    Помните, что getExternalFilesDir() создает каталоги внутри директории, которая будет удалена вместе с приложением. Если файлы должны быть доступны после удаления приложения, например снимки с камеры, используйте метод getExternalStoragePublicDirectory() .

    Очень важно использовать имена директорий, представленных константами API, такие как DIRECTORY_PICTURES независимо от того, использовался ли метод getExternalFilesDir() или getExternalStoragePublicDirectory() . Предопределенные имена директорий позволяют системе правильно обрабатывать ваши файлы. Например, файлы сохраненные в директории DIRECTORY_RINGTONES будут помечены системным медиа-сканером как мелодии звонка, а не как музыкальные файлы.

    Запрос свободного пространства

    Если вы заранее знаете как много данных вам надо сохранить, вы можете узнать достаточно ли места, не дожидаясь исключения IOException , с помощью методов getFreeSpace() или getTotalSpace() . Данные методы позволяют узнать количество свободного и общего пространства на разделе хранилища, соответственно. Данная информация также полезна, чтобы избежать заполнения раздела хранилища выше определенного порога.

    Однако система не гарантирует, что вы можете записать столько же, сколько показывает метод getFreeSpace() . Если свободного места немного больше, чем вы хотите сохранить, или если файловая система заполнена меньше, чем на 90%, вероятно можете продолжать, иначе лучше воздержаться.

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

    Предположим, что у вас на компьютере хранятся файлы и папки, к которым хорошо бы иметь доступ всегда и везде, т.е. – открыть и посмотреть, а также иметь возможность скачать и отредактировать их с любого устройства (планшет, смартфон, другой компьютер) и из любой точки, где вы можете выйти в интернет.
    Всё это очень удобно когда вы регулярно обращаетесь к каким-то заметкам, таблицам, текстам. Находитесь вы, например, в дороге или в любом месте, где не можете сесть за свой компьютер. А доступ к некоторым файлам вам нужен прямо сейчас чтобы просто посмотреть какую-то информацию или возможно внести срочно небольшие изменения, пока вы про это не забыли. В таких случаях вы сможете всегда иметь доступ к нужным вам файлам если загрузите их на специальные бесплатные онлайн-хранилища (диски). Основные из них: Яндекс-Диск, Облако Mail, Google-Диск, Microsoft OneDrive и Mega. Файлы будут храниться в интернете в защищённом пространстве под вашим паролем, и открыть их можно с любого устройства и из любой точки при помощи бесплатных приложений! Нужна лишь возможность выхода в интернет. Да, и ещё один важный момент. Хранение файлов в онлайн-хранилищах защитит вас от потери данных, в случае если с вашим компьютером что-то случится.

    К примеру – сломался жёсткий диск, украли и так далее. Ведь все важные данные будут храниться одновременно в защищённых хранилищах в интернете, откуда вы сможете их беспрепятственно восстановить.

    В предыдущей статье я рассказывал о полноценном удалённом доступе к компьютеру с любого другого устройства и возможно кто-то подумает: «А почему бы не воспользоваться тогда просто удалённым доступом?». В таком случае данный вариант не эффективен и гораздо менее удобен по следующим причинам:

      Во-первых, ваш компьютер, к которому вы хотите подключиться должен быть всегда включён, либо иметь возможность включения по сети;

      Во-вторых, нам ведь нужно всего лишь посмотреть / отредактировать несколько файлов, а не иметь доступ ко сразу ко всем программам на компьютере.

      В третьих, полный удалённый доступ к компьютеру с нужными вам данными будет потреблять больше интернет-трафика и требовать достаточно высокой скорости Интернет-соединения.

    Удалённый доступ к компьютеру нужен не для таких целей, а тогда, когда вам может понадобиться вход в какую-то программу на компьютере, произвести какие-то настройки.

    По сравнению с удалённым доступом, для работы с файлами в онлайн-хранилищах вам понадобится пройти лишь несколько простых шагов:

      Зарегистрироваться в нужных онлайн-хранилищах (лучше во всех основных), ведь это бесплатно!

      Загрузить туда необходимые файлы, к которым вы хотели бы иметь доступ всегда и везде;

      Подключиться к хранилищу удалённо с любого устройства при помощи специального приложения для смартфона, планшета или компьютера. Вот и всё! Вы уже будете иметь доступ к загруженным документам.
      Подключиться к хранилищу можно и вовсе без приложения, просто войдя в нужный сервис по ссылке через браузер.

    Но не всё же так идеально... Есть, конечно же, одно важное ограничение. Заключается оно в максимальном объёме хранимой информации на каждом из онлайн-дисков. Оно, понятное дело, не бесконечное и, как правило, рассчитано на хранение самых основных данных. Если нужно больше – нужно платить за дополнительное свободное место, либо воспользоваться различными акциями или реферальной программой, если таковые вообще имеются в нужном сервисе.

    Рассмотрим основные сервисы для удалённого хранения файлов и сравним их

      Яндекс-Диск .
      Объём диска, доступный по умолчанию при бесплатной регистрации – 10 Гб. Также возможно получить 10 Гб за приглашение друзей (реферальная программа): 512 Мб за каждого приглашённого.
      Также возможно получить дополнительное место по текущим акциям, например – 50 Гб тем, кто купит смартфон / планшет / ноутбук определённой модели. За акциями нужно следить, поскольку одни заканчиваются, другие начинаются:)

      Ну и последний вариант расширения дискового пространства на Яндексе – это покупка нужного объёма.

      Вот возможные варианты расширения свободного места на Яндекс-Диске:

      Для сравнения цен на покупку дополнительного свободного места, возьмём объём, равный 1 терабайту (1 Тб = 1024 Гб).

      Цена 1 Тб на Яндексе, как видим из изображения выше, равна 900 рублей в месяц.

      Яндекс-Диск

      Google-Диск .
      Объём диска по умолчанию – 15 Гб. Расширение объёма за счёт различных акций и партнёрской программы не предусмотрено.
      Расширить диск возможно только заплатив за месяц или год, выбрав нужный объём.

      Вот какие условия нам предлагает Google-Диск:

      Цена за 1 Тб равна 9.99$. Если переведём в рубли (возьмём курс доллара на 15.10.2014 = 40.5 рублей), то видим сразу что на Google цена значительно выгоднее, чем на Яндексе. 9.99 x 40.5 = примерно 404.6 рублей, вместо 900 руб.

      Google-Диск

      Mail-Диск .
      Объём диска по умолчанию – целых 100 Гб. Разница по сравнению с Яндекс и Google приличная, как видите:) Тут всё просто и о каких-либо возможностях бесплатного и даже платного расширения дискового пространства речи на официальном сайте не идёт. Я думаю, 100 Гб халявного места никому не помешает, даже если больше заказать нельзя:)

      Но есть один минус – сервис Мэйла не всегда стабилен. Вот вам, как пример:

      Буквально на днях, при попытке зайти в свой аккаунт Mail в районе 1:00 по МСК, он ни в какую не принимал мой логин и пароль, говоря, что я ввожу неверные данные. Логины и пароли у меня автоматически сохраняются в программе RoboForm (прочитать о ней можно ), а также через неё автоматом заполняются и формы авторизации. И поэтому забыть их я никак не мог и ошибиться при вводе тоже. После нескольких безуспешных попыток войти, я попробовал восстановить пароль, и что вы думаете? :) Прислали новый пароль и с ним мне тоже войти не удалось. Немного разозлился и бросил это дело. Попробовал снова не следующий день и успешно вошёл с первого раза. Хотя бы даже поэтому сервисы Мэйла нельзя назвать очень стабильными:)

      Облако Mail

      Microsoft OneDrive .
      Объём бесплатного свободного пространства после регистрации составляет 15 Гб. Как и в Яндексе, имеется возможность бесплатно расширить объём до 23 Гб. 3 Гб сервис даст за создание резервной копии фотографий с камеры и ещё +0.5 Гб за каждого приглашённого участника по реферальной программе. Максимум – 10 приглашённых, что увеличит ваш объём ещё на 5 Гб:

      Что касается приобретения свободного места за плату, то тут Microsoft предлагает вот такие варианты:

      Т.е. стоимость 1 Тб свободного места + офисный пакет (Office 365) для всех устройств обойдутся нам всего в 199 рублей. Правда, вероятно, такое предложение ограниченно каким-то промежутком времени.

      onedrive

      Mega .
      Объём свободного пространства, предоставляемого бесплатно равен 50 Гб. Расширить свободное место можно только за деньги.

      На сайте указана цена за 2 Тб = 19.99 евро. Рассчитаем по сегодняшнему курсу: 1 евро = 51.5 руб. Итого за 2 Тб с нас берут около 1029.5 рублей. Делим на 2 и получаем для сравнения примерную стоимость 1 Тб равную 515 руб.

      Это чуть дороже, чем на Google и всё равно значительно меньше, чем на дорогом Яндексе, где берут 900 рублей за терабайт:)

      Да и тем более при оплате сразу за год получаем скидки.

      При всём этом сервис стабилен и удобен, замечаний у меня лично к нему пока не было…

      Mega

    Эти 5 перечисленных выше онлайн-сервисов для хранения данных я, пожалуй, подчеркну как основные. Для каждого из них есть специальная программа для компьютера и мобильные приложения для Androind, iOS. При помощи этих программ работать с онлайн-дисками очень удобно, где бы вы ни находились.

    Как видно, основное и главное отличие всех этих сервисов – доступный объём диска после регистрации.

    Почему выделил именно эти сервисы? Главная причина как раз – объём свободного места, который предоставляется бесплатно. В них он вполне хороший. Даже на Яндексе, где бесплатно даётся объём в 10 Гб, можно его расширить до 20 Гб бесплатно, приглашая участников. Ну а в оставшихся трёх начальный объём итак выше:) У Мэйла он самый большой, но стабильность хромает…

    Есть, конечно, ещё и другие облачные хранилища, но объём свободного места, предоставляемого бесплатно в них совсем невелик. Например, в Dropbox предоставляют всего 2 Гб бесплатно. Зачем нам такой объём маленький объём, если можно воспользоваться сразу 5-ю сервисами, о которых я выше писал, не так ли? Причём можно сделать в некоторых случаях и по 2 и более аккаунта в нужном облачном сервисе.

    Я рекомендую регистрироваться во всех перечисленных сервисах, ведь это бесплатно! Свободного пространства для хранения данных никогда не бывает много. Не умещается всё на одном, распределяете ещё на другие и, думаю, объёма по умолчанию, если просуммировать все 5 сервисов, хватит всем вполне:)

    А о том, как пользоваться рассмотренными выше облачными сервисами для хранения данных пойдёт речь в моей следующей серии статей, которая уже сейчас в процессе написания. Просто информации по рассматриваемому вопросу очень много...

    Ну а сейчас на этом всё… Прощаюсь с Вами на неделю;) Пока!