Полезные советы. Программы. Настройка. Железо. Windows

Как разрешить доступ к хранилищу для приложения. Сохранение файлов

Фон

У 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 ответ

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

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

  • Что происходит с файлами приложения, когда пользователь перемещает приложение с/на 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-карту в качестве переносного хранилища, используя опцию "Формат как переносная" .

    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 не дает никаких гарантий в отношении материалов, представленных на таких веб-сайтах, не подтверждает их и не берет на себя никакой ответственности за них или за пользование упомянутыми веб-сайтами.

    Мое приложение хранит файлы во внутреннем каталоге хранилища (/Android/data/com.mycompany.myapp/files, как было возвращено getFilesDir()), и я хотел бы разрешить пользователям обращаться к этим файлам непосредственно из управления файлами приложение на своем мобильном устройстве или приложение Android File Transfer для рабочего стола.

    2 ответов

    Я более подробно рассмотрел результат getFilesDir() vs getExternalFilesDir() и обнаружил, что getFilesDir() возвращает /data/data//files , а getExternalFilesDir() возвращает /Android/data//files . Я думал, что файлы приложений, которые я просматривал в /Android/data , были внутренними каталогами хранилища, но теперь я вижу, что это фактически внешние каталоги хранения.

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

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

    Вот сравнение, которое может быть полезно для кого-то другого, читающего это:

    Я думаю, что вы запутались в документации разработчиков, я не могу вас обвинить, это не лучшая документация, которую я когда-либо читал. В любом случае, Android предоставляет два способа сохранения файлов в файловой системе:

    • Использование внутреннего хранилища
    • Использование внешнего хранилища

    Внутреннее хранилище ВСЕГДА доступно и доступно ТОЛЬКО вашему приложению, никакое другое приложение в системе не может получить доступ к файлам, сохраненным в этом разделе.

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

    Вы не должны использовать ни MODE_WORLD_WRITEABLE , ни MODE_WORLD_READABLE , как указано в документации, потому что это очень опасно. Кроме того, эти константы устарели, поскольку уровень API 17

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

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

    Public enum StorageState{ NOT_AVAILABLE, WRITEABLE, READ_ONLY } public StorageState getExternalStorageState() { StorageState result = StorageState.NOT_AVAILABLE; String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return StorageState.WRITEABLE; } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { return StorageState.READ_ONLY; } return result; }

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

    поделиться

    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; } return false; } /* Checks if external storage is available to at least read */ public boolean isExternalStorageReadable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { return true; } return false; }

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

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

    Например, фотографии, сделанные с помощью приложения, или другие загруженные файлы.

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

    Например, дополнительные ресурсы загруженные вашим приложения или временные медиа-файлы.

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

    Public File getAlbumStorageDir(String albumName) { // Get the directory for the 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 the 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() на регулярной основе, а также регулярно удалять другие файлы, которые вам больше не нужны.

    Предположим, что у вас на компьютере хранятся файлы и папки, к которым хорошо бы иметь доступ всегда и везде, т.е. – открыть и посмотреть, а также иметь возможность скачать и отредактировать их с любого устройства (планшет, смартфон, другой компьютер) и из любой точки, где вы можете выйти в интернет.
    Всё это очень удобно когда вы регулярно обращаетесь к каким-то заметкам, таблицам, текстам. Находитесь вы, например, в дороге или в любом месте, где не можете сесть за свой компьютер. А доступ к некоторым файлам вам нужен прямо сейчас чтобы просто посмотреть какую-то информацию или возможно внести срочно небольшие изменения, пока вы про это не забыли. В таких случаях вы сможете всегда иметь доступ к нужным вам файлам если загрузите их на специальные бесплатные онлайн-хранилища (диски). Основные из них: Яндекс-Диск, Облако 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 сервисов, хватит всем вполне:)

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

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

Лучшие статьи по теме