Estamos construyendo una red doméstica. Almacenamiento en red. Acceso al almacenamiento externo: desarrollo de juegos para sistemas operativos Android Selección de configuraciones de disco

Con el aumento de megapíxeles en las cámaras fotográficas y de vídeo, el problema de almacenar contenidos multimedia domésticos surge cada vez más para un gran número de usuarios de PC. Por supuesto, los discos duros hoy en día no son tan caros y su volumen se mide en terabytes, pero esto no es suficiente.

Hay varias opciones para ampliar la capacidad del espacio disponible en disco. Si tiene una computadora "grande" normal, la forma más sencilla es instalarle nuevos discos duros. Una forma más universal es utilizar unidades externas. Sin embargo, lo más conveniente (y costoso) sería instalar una unidad de red en la red local de su hogar.

Le permitirá tener acceso constante desde cualquier PC o reproductor a toda la biblioteca multimedia, almacenar copias de seguridad de documentos y particiones del sistema de computadoras, intercambiar archivos a través de Internet sin la participación de una PC y mucho más. Además, estos dispositivos se distinguen por su reducido tamaño (en comparación con un PC) y su bajo consumo energético y ruido. Entonces, si no tiene una casa de campo con un par de cuartos de servicio, una unidad de red compacta puede ser una muy buena opción. Por cierto, también existen modelos para discos duros de 2,5 pulgadas.

Como nuestra red ya incluye un enrutador, solo debemos seleccionar el modelo de NAS deseado y conectarlo a la red. Para los usuarios novatos que no están seguros de la necesidad de decenas de terabytes, lo mejor es buscar dispositivos con uno o dos discos duros instalados. Hoy en día son los más óptimos para uso doméstico. Y si no hay suficiente espacio, puede conectarles unidades USB o eSATA externas. Si ya comprende de antemano que un par de discos definitivamente no son suficientes, existen modelos con 4, 5, 6 o más discos. Es cierto que su coste es relativamente elevado. La mayoría de los dispositivos se venden sin discos duros, por lo que deberás comprarlos por separado. Como referencia, es mejor consultar las listas de compatibilidad de los fabricantes. En este caso, no tiene sentido perseguir los discos duros más rápidos. Es mejor seleccionarlos en función de los bajos niveles de consumo de energía, calefacción y ruido.

También vale la pena mencionar la posibilidad de utilizar una PC normal dedicada separada como NAS. Pero en este material hablaremos específicamente sobre unidades de red listas para usar.

Casi todos los dispositivos están conectados a la red a través de una conexión gigabit, ya que los 10-12 MB/s que proporciona FastEthernet ya están dentro de las capacidades de los modelos más simples y hoy en día parecen completamente frívolos.

Normalmente se utiliza Linux como sistema operativo integrado, pero también hay opciones con Windows Home Server. En el segundo caso, el servidor prácticamente no se diferencia de una PC doméstica, solo la comunicación con él se produce exclusivamente a través de la red. WHS está equipado con documentación de alta calidad y numerosos "ayudantes", por lo que no será difícil entenderlo. La mayor parte de la información que aparece más adelante en este artículo no se aplica a esta opción.

Si tiene miedo de comunicarse con Linux, en realidad no hay nada complicado en este caso: el usuario tiene acceso a una cómoda interfaz web a través de la cual puede configurar todos los parámetros y funciones necesarios. Pero si accede a la línea de comando, podrá trabajar con el dispositivo casi como una computadora normal.

Además del sistema operativo, también tiene sentido prestar atención a las capacidades del dispositivo. Actualmente, además del almacenamiento de archivos habitual, las unidades de red brindan servicios de servidor de medios, descarga de archivos, acceso remoto y otros.

En cuanto a la plataforma de hardware y el rendimiento, los modelos con procesadores compatibles con x86 pertenecen al segmento más productivo (y caro); los procesadores ARM con una frecuencia de 1000-1600 MHz están en el centro, y los ARM de gama baja suelen cerrar la línea. En realidad, vale la pena mirar no la plataforma en sí, sino los resultados de su implementación específica, ya que se puede lograr mucho optimizando el shell del software.

La eficiencia de los servicios adicionales depende de la cantidad de RAM, por lo que recomendamos elegir dispositivos con 256 MB o más si planea utilizar algo más que el acceso a archivos de red. Aunque para el primer contacto 64 o 128 MB son suficientes. Simplemente no esperes demasiado de ellos.

Esta vez utilizamos el modelo DS210+ de uno de los fabricantes más populares en este segmento del mercado: Synolog. Este dispositivo de dos discos, además de brindar servicios de almacenamiento de archivos en red, tiene muchas funciones adicionales y puede resultar muy útil tanto para uso doméstico como para oficinas.

Cabe señalar que, por lo general, todos los fabricantes tienen casi las mismas capacidades de firmware para todos los modelos de la línea y se actualizan simultáneamente. Para obtener una visión más completa de los dispositivos Synology, consulte nuestra revisión reciente del DS710+.

Asamblea

La mayoría de las veces, las unidades de red se venden sin discos duros y el usuario debe comprarlos e instalarlos él mismo. Aquí no hay nada complicado: abre la caja o saca los marcos, atornilla los discos y ensambla la estructura.

La única nota aquí es que es recomendable asegurarse primero de que no haya información en los discos duros y que la tabla de particiones esté vacía. De lo contrario, pueden producirse errores al instalar el firmware. Además, no olvide que todos los modelos de unidades de red necesariamente requieren reformatear sus unidades internas y simplemente instalar unidades existentes y guardar datos no funcionará.

Instalación de firmware

Después de esto, normalmente deberá pasar por el proceso de instalación del firmware en el NAS. Esto se hace utilizando la utilidad incluida, en nuestro caso Synology Assistant. Lo mejor es descargar tanto el firmware como el programa desde el sitio web del fabricante. Esto asegurará que esté utilizando las últimas versiones. Pero simplemente puede insertar el disco óptico suministrado en la unidad de la PC; en él se registra toda la información necesaria. Si la unidad viene con discos duros, entonces el firmware ya está instalado y se puede omitir este paso.

Configuración de la red

En la mayoría de los casos, no se requiere ninguna configuración de red especial en la unidad. Recibe direcciones del enrutador a través de DHCP; suele ser adecuado el nombre sugerido por el fabricante. Pero si es necesario (por ejemplo, si desea especificar un nuevo nombre o denegar el acceso de la unidad a Internet eliminando la dirección predeterminada del enrutador de la configuración), puede usar la página "Panel de control - Red". También puede habilitar la compatibilidad con Jumbo Frames aquí.

Seleccionar configuraciones de disco

Después de instalar el firmware, debe seleccionar la configuración del disco duro (en algunos casos, se crea simultáneamente con la instalación del firmware). Si hay más de uno, puede elegir una de las opciones de matriz RAID. En la tabla se muestran breves características comparativas de los principales. En la fórmula del volumen, N es el número de discos, S es el volumen de uno de ellos (se supone que los discos son iguales, en la mayoría de los casos esto es necesario para un funcionamiento óptimo).

ModoNúmero de discosVolumen totalprosDesventajas
Discos individuales (Básico)1 SMáxima independenciaSin tolerancia a fallos, sin posibilidad de combinar discos.
JBOD2 o másS×NMatriz única de volumen máximo
RAID02 o másS×NVelocidad máximaSi falla un disco, se pierde toda la información.
RAID12 SPequeño volumen utilizable
RAID53 o másS×(N−1)Tolerancia a fallos ante la pérdida de un solo discoRequiere 3 o más discos, baja velocidad de escritura en sistemas débiles

Algunos fabricantes, en particular Synology, analizados aquí, ofrecen sus propias implementaciones RAID con una configuración simplificada: cuando desea expandir la matriz, simplemente necesita agregar discos o cambiarla por una de mayor capacidad.

La mayoría de los modelos le permiten crear varias matrices a la vez y la única limitación es la cantidad de discos. Por ejemplo, si hay cuatro, entonces puede hacer un espejo RAID1 a partir de dos y ensamblar el segundo par en RAID0.

Tenga en cuenta que el firmware en sí está instalado en cada uno de los discos, esto le permite aumentar la tolerancia a fallas e implementar la capacidad de migrar y expandir matrices sin perder datos reemplazando secuencialmente los discos en RAID1/RAID5.

Además de la partición del sistema, suele haber también una partición de intercambio, por lo que el volumen total útil para el usuario es algo menor. Pero una pérdida de 2 a 4 GB en discos de 1 TB no es muy significativa.

Para formatear discos duros, primero debe ir a la interfaz web del dispositivo. Esto se puede hacer desde Synology Assistant o simplemente abriendo la dirección/nombre de la unidad en el navegador. Después de ingresar su nombre y contraseña, tendrá acceso a la configuración.

A continuación pasamos a configurar los volúmenes de disco. Si tiene un disco duro, también hay una sola opción: "Básico", más precisamente, también está "Synology Hybrid Raid", que selecciona automáticamente la configuración de disco más conveniente y le permite agregar fácilmente nuevos discos sin perder información; . Para el modelo de dos discos considerado, esto es algo redundante. Entonces, si instala dos discos, entonces es mejor elegir el JBOD clásico, que combina dos discos en un volumen grande, RAID0, una matriz seccionada para combinar en un volumen y aumentar el rendimiento, o RAID1, dos discos son copias espejo uno del otro. , proporcionando tolerancia a fallos ante el fallo de uno de estos, sin embargo, el volumen útil en este caso es igual a un disco. A veces es incluso mejor simplemente crear dos volúmenes "Básicos" independientes y, para los datos importantes, configurar una copia de seguridad automática de un disco al segundo.

En las últimas versiones del firmware de Synology, es posible dividir cada disco en varias partes y organizar matrices a partir de ellas. Esto aumenta significativamente la flexibilidad de configuración. Dado que otros fabricantes no tienen esta opción (¿todavía?), haremos todo a la antigua usanza: un disco por volumen.

En el último paso, el dispositivo ofrecerá escanear completamente la matriz en busca de bloques defectuosos después de la creación. A pesar de que los discos duros modernos son excepcionalmente fiables, es mejor no renunciar a ello.

Creación de acciones y definición de derechos

El siguiente paso después de crear el volumen del disco será programar a los usuarios del sistema. Por supuesto, puede intentar trabajar exclusivamente con una cuenta de administrador, pero esto no es muy conveniente. El segundo extremo sería permitir el acceso de invitados, por lo que no se realizará ninguna verificación. Pero aun así recomendamos usar la “versión completa”, con nombres y control de acceso, incluso para el hogar y una red simple.

La opción más conveniente sería utilizar nombres de usuario y contraseñas que coincidan completamente con sus cuentas de Windows. Esto eliminará solicitudes innecesarias al acceder a los recursos de la red. También sería útil crear usuarios, por ejemplo, para reproductores multimedia, de modo que se les puedan otorgar derechos de solo lectura sobre algunos recursos para evitar el riesgo de pérdida de datos. Y no olvide cambiar la contraseña del administrador del NAS.

Si tiene muchos usuarios, también puede utilizar la organización de grupos para administrar los derechos más fácilmente. Esto suele ser excesivo para una casa.

Los derechos de usuario no se otorgan exclusivamente al volumen de disco creado, sino a las carpetas compartidas ubicadas en él. Por eso también es necesario programarlos. En algunos casos, aparecen automáticamente después de crear un volumen o activar ciertos servicios (por ejemplo, un reproductor multimedia).

En nuestro caso, crearemos una carpeta pública y le asignaremos derechos a nuestros usuarios.

Acceda a la unidad desde una PC

Después de las operaciones descritas anteriormente, ya se puede utilizar el escenario principal de una unidad de red: leer y escribir archivos a través de la red.

Recordemos algunas características prácticas de las redes de Windows. El principal protocolo de red moderno, TCP/IP, permite a los participantes sólo intercambiar paquetes. Por lo tanto, para implementar varios servicios además, es necesario utilizar protocolos de nivel superior. Sin entrar en detalles - "Red"/"Entorno de red" en Windows, CIFS, SMB, SAMBA - todo esto significa la capacidad de compartir archivos entre dispositivos de red e impresión en red. La implementación de este protocolo es posible no sólo en PC con Windows, sino también, por ejemplo, en reproductores multimedia, televisores, receptores de satélite, cámaras de vídeo IP y, por supuesto, en otros sistemas operativos como Linux o Mac OS (un "estándar" similar /común” para este sistema operativo se llama AFP). En la mayoría de los casos, estos protocolos sólo funcionan en el segmento local de su red doméstica.

Para acceder a un recurso, necesita saber el nombre del servidor y el nombre de la carpeta compartida que contiene. En el Explorador de Windows, simplemente escriba “\ServerFolder” en la barra de direcciones y será llevado a la carpeta Carpeta ubicada en el servidor Servidor. En nuestro caso, deberás escribir “\DiskStationpublic”. Si su nombre de usuario y contraseña en Windows están registrados en el NAS y tiene derechos sobre esta carpeta (o el acceso de invitado está habilitado), verá su contenido; de lo contrario, el servidor le solicitará un nombre y una contraseña; Tenga en cuenta que en una red Windows, solo se puede acceder a diferentes recursos en el mismo servidor con un nombre de usuario y contraseña a la vez.

A menudo resulta conveniente tener "letras" locales siempre conectadas para acceder a los recursos de la red. Esto también es fácil de hacer: abra “\DiskStation” en el Explorador, haga clic con el botón izquierdo del mouse en el ícono “público” y seleccione “Conectar”. Si hay una marca de verificación en la ventana "Restaurar al iniciar sesión", siempre tendrá acceso a esta carpeta compartida en la letra seleccionada (si la unidad está, por supuesto, encendida). Por cierto, también puedes utilizar Synology Assistant para esta operación.

Configuración avanzada del NAS

Describiremos brevemente qué otras acciones se deben tomar después del primer inicio de la unidad de red.

Puede resultar que su red doméstica utilice un nombre de grupo de trabajo distinto al clásico “GRUPO DE TRABAJO”. Entonces es recomendable cambiarlo también en la unidad de red. Esto se hace en la configuración del protocolo de Windows - "Panel de control - Win/Mac/NFS". Si el dispositivo de almacenamiento de red es el único dispositivo que funciona constantemente, puede activar la función "Explorador maestro local", lo que aumentará la estabilidad del entorno de red de Windows. Siempre puedes encontrar un dispositivo por nombre o dirección IP, pero la lista real de ellos en la ventana "Red" a veces puede estar incompleta.

Si planea proporcionar acceso al NAS desde Internet, es recomendable habilitar el bloqueo automático cuando intente adivinar la contraseña. Esto le permitirá no tener miedo de los ataques de piratas informáticos novatos.

También es necesario habilitar el acceso a la interfaz web mediante el protocolo cifrado HTTPS, e incluso es recomendable indicar que su uso es obligatorio. Esto se hace en la pestaña "Panel de control - Configuración de DSM".

Tenga en cuenta que la mayoría de los navegadores modernos probablemente se quejarán del almacenamiento de red cuando trabajen con HTTPS. El caso es que el certificado SSL que utiliza es “autofirmado”, es decir, es imposible verificar su origen a través de autoridades certificadoras globales. Normalmente, en este caso, el navegador le pedirá que incluya este servidor en la lista "confiable". Para trabajar en el segmento comercial, puede instalar en su dispositivo de almacenamiento de red un certificado recibido oficialmente de una autoridad confiable.

Al igual que un enrutador, el NAS puede enviar mensajes de correo electrónico si surgen problemas. Esta opción se puede utilizar con muchos servicios de correo electrónico públicos que admiten SMTP.

La mayoría de los dispositivos tienen opciones para administrar la energía, por ejemplo, apagar los discos duros en caso de inactividad o incluso programar un horario de funcionamiento. El debate sobre qué modo de funcionamiento, constante o con apagados, es más "útil" para un disco duro continúa hasta el día de hoy. Es imposible dar aquí un consejo definitivo. Recomendamos observar la situación: si la unidad se utiliza más de un par de veces al día, es mejor dejarla encendida. En realidad, los discos modernos son muy fiables y si no se caen mientras están encendidos, duran muchísimo tanto en tiempo como en ciclos de encendido/apagado.

Por cierto, para aumentar la confiabilidad, recomendamos encarecidamente conectar la unidad de red (y también otros equipos) a través de una fuente de alimentación ininterrumpida. Puede seleccionar su modelo usando las listas de compatibilidad de NAS, luego, al conectar dispositivos a través de USB, el UPS podrá informar problemas a la unidad y, si es necesario, apagarlo de manera segura.

Acceder a archivos desde Internet

Como ejercicio de uso conjunto de un enrutador y un NAS, describiremos una de las opciones para organizar el acceso completo y seguro a sus archivos desde Internet.

Synology tiene una opción muy conveniente para esto: el administrador de archivos integrado FileStation. Requiere que HTTPS esté habilitado. El puerto se puede dejar en el 7001 predeterminado, pero en el caso de que el enrutador no pueda funcionar con diferentes puertos externos e internos, es mejor cambiarlo por algo menos "habitual".

Los controles de derechos de usuario de Synology también se aplican a servicios adicionales, por lo que debe asegurarse de que FileStation esté autorizado para las personas adecuadas.

Los siguientes dos pasos se llevan a cabo en el enrutador. Primero, asignamos una dirección MAC de enlace físico del NAS a una de las direcciones IP en el rango de LAN en la página de propiedades del servidor DHCP. Esto nos permitirá estar seguros de que la dirección IP no cambiará después de reiniciar.

Bueno, el toque final es el propósito de transmitir el puerto externo a FileStation. En nuestro ejemplo, seleccionamos el puerto externo 39456 y lo transferimos al interno 7001 a la dirección 192.168.1.40 del dispositivo de almacenamiento de red.

Esto completa la configuración. Ahora, desde cualquier lugar de Internet, puede acceder a sus archivos a través de un navegador escribiendo el enlace “https://myhost.homedns.org:39456” en la barra de direcciones (la dirección se toma como ejemplo del artículo anterior) y especificando el nombre de usuario y la contraseña

En el próximo artículo veremos cómo trabajar con servicios de almacenamiento de red adicionales.

Android utiliza un sistema de archivos similar a los sistemas de archivos basados ​​en disco en otras plataformas. Este tutorial describe cómo trabajar con el sistema de archivos de Android para leer y escribir archivos usando File API.

Elija almacenamiento interno o externo

Todos los dispositivos Android tienen dos áreas de almacenamiento de archivos: almacenamiento "interno" y "externo". Estos nombres provienen de los primeros días de Android, cuando se sugería que la mayoría de los dispositivos proporcionaran memoria permanente integrada (almacenamiento interno), así como almacenamiento extraíble, como una tarjeta micro SD (almacenamiento externo). Algunos dispositivos dividen el espacio de almacenamiento persistente en particiones "internas" y "externas", es decir. Incluso sin almacenamiento extraíble, siempre hay dos almacenamientos y el comportamiento de la API para el almacenamiento externo es el mismo, ya sea extraíble o no. Las siguientes listas resumen los datos sobre cada repositorio.

Almacenamiento interno:

  • Siempre disponible.
  • De forma predeterminada, solo la aplicación puede acceder a los archivos guardados aquí.
  • Cuando un usuario desinstala su aplicación, el sistema elimina todos los archivos de su aplicación de la memoria interna.

El almacenamiento interno es mejor cuando desea asegurarse de que ni el usuario ni otras aplicaciones puedan acceder a los archivos.

Almacenamiento externo:

  • No siempre está disponible, ya que el usuario puede montar un disco externo como almacenamiento USB y, en algunos casos, retirarlo del dispositivo.
  • La lectura está permitida para todos, por lo que los archivos guardados aquí se pueden leer sin su control.
  • Cuando un usuario elimina su aplicación, el sistema elimina los archivos de su aplicación desde aquí solo si los guarda en un directorio de getExternalFilesDir() .

Consejo útil: aunque las aplicaciones se instalan en el almacenamiento interno de forma predeterminada, puedes especificar el atributo android:installLocation en tu manifiesto para que tu aplicación pueda instalarse en el almacenamiento externo. Los usuarios aprecian esta opción cuando el tamaño del APK es muy grande y tienen un espacio de almacenamiento externo mayor que la memoria interna. Para obtener más información, consulte Ruta de instalación de la aplicación.

Obtener permisos para unidades externas

Para escribir en una unidad externa, debe solicitar el permiso WRITE_EXTERNAL_STORAGE en su archivo de manifiesto:

...

Atención: Actualmente, todas las aplicaciones tienen la capacidad de leer desde dispositivos de almacenamiento externos sin un permiso especial. Sin embargo, esto cambiará en una versión futura. Si su aplicación necesita leer el almacenamiento externo (pero no escribir en él), deberá declarar el permiso READ_EXTERNAL_STORAGE. Para garantizar que su aplicación siga funcionando como se esperaba, debe declarar este permiso ahora antes de que los cambios entren en vigor.

...

Sin embargo, si su aplicación usa el permiso WRITE_EXTERNAL_STORAGE, también tiene implícitamente permiso para leer almacenamiento externo.

No necesita ningún permiso para guardar archivos en el almacenamiento interno. Su aplicación siempre tiene permiso para leer y escribir archivos en el directorio de almacenamiento interno.

Guarde el archivo en el almacenamiento interno

Al guardar un archivo en el almacenamiento interno, puede solicitar el directorio correspondiente, como un objeto Archivo, llamando a uno de dos métodos:

getFilesDir() Devuelve el archivo, que es el directorio interno de su aplicación. getCacheDir() Devuelve Archivo, que es el directorio interno para los archivos de caché temporales de su aplicación. Asegúrese de no necesitar eliminar archivos uno por uno e implemente un límite razonable en la cantidad de memoria que utilizará en un momento dado, como 1 MB. Si el sistema se queda sin espacio, puede eliminar sus archivos de caché sin previo aviso.

Para crear un nuevo archivo en uno de estos directorios, puede utilizar el constructor File(), pasando un archivo proporcionado por uno de los métodos anteriores que apunte a su directorio interno. Por ejemplo:

Archivo archivo = nuevo Archivo (context.getFilesDir(), nombre de archivo);

Alternativamente, puede llamar a openFileOutput() para obtener un FileOutputStream que escriba en un archivo en su directorio interno. Por ejemplo, aquí se explica cómo escribir texto en un archivo:

Nombre de archivo de cadena = "miarchivo"; Cadena cadena = "¡Hola mundo!"; FileOutputStream flujo de salida; intentar (outputStream = openFileOutput(nombre de archivo, Context.MODE_PRIVATE);outputStream.write(string.getBytes());outputStream.close();) catch (Excepción e) (e.printStackTrace();)

O si necesita almacenar en caché algunos archivos, debería usar createTempFile() . Por ejemplo, el siguiente método extrae un nombre de archivo de una URL y crea un archivo con el mismo nombre en el directorio de caché interno de su aplicación:

Archivo público getTempFile (contexto de contexto, URL de cadena) (Archivo de archivo; intente (String fileName = Uri.parse(url).getLastPathSegment(); file = File.createTempFile(fileName, null, context.getCacheDir()); catch (IOException e) (//Error al crear el archivo) devolver el archivo)

Nota: El directorio de almacenamiento interno de su aplicación utiliza el nombre del paquete de su aplicación y está ubicado en una ubicación especial en el sistema de archivos de Android. Técnicamente, otra aplicación puede leer sus archivos internos si configura el modo de acceso al archivo para leer. Sin embargo, otras aplicaciones también necesitan saber el nombre del paquete y los nombres de los archivos. Otras aplicaciones no pueden ver sus directorios internos y no tienen acceso de lectura o escritura a menos que establezca explícitamente permisos de lectura o escritura. Entonces, mientras usa MODE_PRIVATE para sus archivos en la memoria interna, otras aplicaciones no pueden acceder a ellos.

Guarde el archivo en una unidad externa

Debido a que es posible que el almacenamiento externo no esté disponible (por ejemplo, cuando un usuario monta el almacenamiento en una PC o retira una tarjeta SD que proporciona almacenamiento externo), siempre debe asegurarse de que se pueda acceder a una partición antes de acceder a ella. Puede consultar los estados del almacenamiento externo llamando a getExternalStorageState() . Si el estado devuelto es MEDIA_MOUNTED, entonces puede leer y escribir archivos. Por ejemplo, los siguientes métodos son útiles para determinar la disponibilidad de almacenamiento:

/* Comprueba si el almacenamiento externo está disponible para lectura y escritura */ public boolean isExternalStorageWritable() ( String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) ( return true; ) return false; ) / * Comprueba si el almacenamiento externo está disponible para al menos lectura */ public boolean isExternalStorageReadable() ( String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) ( devolver verdadero; ) devolver falso;

Aunque el usuario y otras aplicaciones pueden modificar el dispositivo de almacenamiento externo, existen dos categorías de archivos que puede guardar aquí:

Archivos públicos Archivos que deben ser de libre acceso para otras aplicaciones y para el usuario. Cuando un usuario desinstala su aplicación, estos archivos deben permanecer disponibles para el usuario.

Por ejemplo, fotografías tomadas con la aplicación u otros archivos descargados.

Archivos personales Archivos que pertenecen legítimamente a su aplicación y deben eliminarse cuando un usuario desinstala su aplicación. Aunque estos archivos son técnicamente accesibles para el usuario y otras aplicaciones, porque están en almacenamiento externo, son archivos que no tienen ningún valor real para el usuario fuera de su aplicación. Cuando un usuario desinstala su aplicación, el sistema elimina todos los archivos del directorio privado externo de su aplicación.

Por ejemplo, recursos adicionales descargados por su aplicación o archivos multimedia temporales.

Si desea almacenar archivos compartidos en un dispositivo de almacenamiento externo, utilice el método para obtener el archivo que representa el directorio correspondiente en el dispositivo de almacenamiento externo. El método toma un argumento que indica el tipo de archivo que desea guardar para que se puedan organizar lógicamente con otros archivos públicos como DIRECTORY_MUSIC o DIRECTORY_PICTURES. Por ejemplo:

Archivo público getAlbumStorageDir(String albumName) ( // Obtiene el directorio para el directorio de imágenes públicas del usuario. File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs()) ( Log.e(LOG_TAG, "Directorio no creado");

Si desea almacenar archivos que son privados para su aplicación, puede solicitar el directorio apropiado llamando a getExternalFilesDir() y pasándole un nombre que indique el tipo de directorio requerido. Cada directorio creado de esta manera se agrega a un directorio principal que encapsula todos los archivos de almacenamiento externo de su aplicación que el sistema elimina cuando el usuario desinstala su aplicación.

Por ejemplo, aquí tienes un método que puedes utilizar para crear un directorio para un solo álbum de fotos:

Archivo público getAlbumStorageDir(Context context, String albumName) ( // Obtenga el directorio para el directorio de imágenes privadas de la aplicación. File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), albumName); if (!file.mkdirs( )) ( Log.e(LOG_TAG, "Directorio no creado"); ) devolver archivo )

Si ninguno de los nombres de subdirectorio predefinidos se adapta a sus archivos, puede llamar a getExternalFilesDir() y pasar null en su lugar. Esto devuelve el directorio raíz de los directorios privados de su aplicación en el disco externo.

Ya sea que use getExternalStoragePublicDirectory() para archivos públicos o getExternalFilesDir() para archivos privados de su aplicación, es importante que use los nombres de directorio proporcionados por las constantes API como DIRECTORY_PICTURES . Estos nombres de directorio garantizan que el sistema interprete los archivos como lo espera. Por ejemplo, los archivos guardados en DIRECTORY_RINGTONES son clasificados por el sistema de escaneo de medios como tonos de llamada en lugar de música.

Solicitar espacio libre

Si sabe de antemano cuántos datos almacenará, puede determinar si hay suficiente espacio disponible sin generar una IOException llamando a getFreeSpace() o getTotalSpace() . Estos métodos proporcionan información sobre el espacio disponible actualmente y el espacio total de partición, respectivamente. Esta información también es útil para evitar llenar una partición de disco más allá de un cierto umbral.

Sin embargo, el sistema no garantiza que puedas escribir tantos bytes como indica getFreeSpace() . Si el número devuelto es unos pocos MB mayor que el tamaño de los datos que desea almacenar, o si el sistema de archivos está lleno a menos del 90%, entonces probablemente esté listo. De lo contrario, probablemente no valga la pena escribir en el almacenamiento.

Nota: No es necesario que verifique la cantidad de espacio libre antes de guardar el archivo. En su lugar, puede intentar escribir el archivo y detectar una IOException si ocurre. Es posible que tengas que hacer esto si no sabes exactamente cuánto espacio necesitas. Por ejemplo, si cambia la codificación de un archivo antes de guardarlo convirtiendo una imagen PNG a JPEG, no sabrá el tamaño del archivo de antemano.

Eliminar un archivo

Siempre debes eliminar los archivos que ya no necesites. La forma más sencilla de eliminar un archivo es llamar a eliminar().

MiArchivo.delete();

Si el archivo está almacenado en el almacenamiento interno, también puede pedirle a Context que busque y elimine el archivo llamando a deleteFile() :

MyContext.deleteFile(nombredearchivo);

Nota: Cuando un usuario elimina su aplicación, el sistema Android elimina lo siguiente:

  • Todos los archivos guardados en el almacenamiento interno.
  • Todos los archivos almacenados en el disco externo usando getExternalFilesDir() .

Sin embargo, debe eliminar manualmente todos los archivos en caché creados por getCacheDir() de forma regular y también eliminar periódicamente otros archivos que ya no necesite.

Los servicios de almacenamiento de datos en la nube se han convertido en una auténtica panacea para todos aquellos que querían acceder a sus datos desde cualquier dispositivo y desde cualquier lugar del espacio. Felizmente movimos nuestros datos a las nubes y los usamos con éxito, solo a veces leemos con cautela las últimas noticias sobre hacks de iCloud y Dropbox. Al principio, a algunas personas les atormenta el hecho de que la nube esté controlada por “alguien”, pero no por el propio usuario. Este es exactamente el tipo de entusiastas que crearon OwnCloud.

Lo que es

Una “nube propia” no es más que almacenamiento personal que se ejecuta en su propio servidor web o sitio web. La característica principal de OwnCloud es que es gratuito y de código abierto. En general, si la plataforma de alojamiento mencionada anteriormente está disponible, el usuario necesitará aproximadamente 5 minutos para implementar su propio almacenamiento similar a Dropbox y sin codificación sofisticada; no se necesitan conocimientos específicos. Además, el usuario obtiene acceso a aplicaciones (editores de texto, listas de tareas y otras cosas útiles) que otros participantes del proyecto crean para sus propias necesidades.

Facebook Google Mas Acceso denegado o problema con el permiso de acceso a un archivo/carpeta en un disco externo

A veces, al conectar una unidad externa a una computadora que ejecuta Windows 2000 Pro, XP o Vista, es necesario asignar permisos/privilegios. Debido a que los archivos pertenecen a una cuenta diferente, es posible que reciba un error de "Acceso denegado" o "No disponible" cuando intente abrir la unidad o la carpeta que contiene.

Consulte a continuación para obtener información sobre cómo transferir la propiedad al usuario actual en XP Professional. Estas instrucciones también se aplican a Windows Vista.
(Inicio XP.)

Para transferir la propiedad al usuario actual en Windows XP HOME:

  • Inicie en modo seguro.
  • Haga clic derecho en el archivo/carpeta deseado y abra la sección Propiedades.
  • Haga clic en Seguridad > Avanzado > Propietario y seleccione la cuenta de usuario en la computadora en la que desea que estos archivos y carpetas sean propietarios.
    Seleccione la casilla de verificación "Reemplazar propietario en subcontenedores y carpetas" para permitir que todos los archivos de una carpeta hereden los cambios (solo cuando cambian los permisos de la carpeta).
  • Si recibe el mensaje "No tiene permiso para leer el contenido de la carpeta [ nombre de la carpeta]. ¿Quiere cambiar los permisos de esta carpeta para tener derechos de control total? Todos los permisos serán reemplazados si hace clic en el botón "Sí". Haga clic en el botón Sí.
  • Consulte los siguientes artículos del Centro de soporte técnico de Microsoft:

    Si no puede cambiar los permisos, verifique si sus archivos están cifrados usando la función de cifrado de Windows. En lugar del negro habitual, tendrán una fuente verde:

    Para recuperar estos archivos, debe volver a conectar la unidad a la computadora original. Los archivos se cifran sin utilizar el software de Seagate. Para obtener más información, consulte los siguientes artículos de Microsoft Knowledge Base:

    Finalmente, la estructura del archivo puede resultar dañada.

    • Ejecute una verificación del disco para intentar reparar la corrupción.
    • Si la partición está dañada, siga los pasos descritos anteriormente.

    INDICACIÓN DE DESARROLLADORES Y SITIOS WEB DE TERCEROS. Seagate identifica a desarrolladores y productos de terceros únicamente con fines informativos y no favorece ni recomienda (directa o indirectamente) a ninguna de las empresas mencionadas. Seagate no ofrece garantías de ningún tipo (ni implícitas ni de otro tipo) con respecto al rendimiento o la confiabilidad de dichas empresas o productos. Seagate no está afiliado ni controla ninguna de las empresas mencionadas y, por lo tanto, no asume ninguna responsabilidad en relación con ellas y renuncia a cualquier responsabilidad con respecto a las acciones o productos de las empresas mencionadas. Realice su propia evaluación independiente antes de hacer negocios con cualquier empresa. Comuníquese directamente con el fabricante correspondiente para obtener especificaciones e información sobre la garantía. Este documento contiene enlaces a sitios web de terceros que Seagate no controla. Dichos enlaces se proporcionan para su comodidad y se utilizan bajo el propio riesgo del usuario. Seagate no ofrece garantías ni avala los materiales proporcionados en dichos sitios web y no asume ninguna responsabilidad por ellos ni por el uso de dichos sitios web.

    Nafa 647 14.01.10 02:27 Actualmente en el tema

    El artículo es útil.
    De hecho, hay muchas cosas que no son obvias en el funcionamiento de una instalación de almacenamiento, por eso mis adiciones:
    1. Si trabajan varios programadores, entonces, como opción,
    La jornada laboral suele comenzar con lo siguiente:
    Iniciamos nuestra base de datos en el configurador, hacemos clic derecho en la raíz de configuración - obtener del almacenamiento, marcamos la casilla de verificación "recursiva", hacemos clic en Aceptar. Después de eso, nos metemos en la configuración todo lo que otros han desarrollado desde el repositorio. ¡¡¡NO ACTUALIZAMOS LA BD MISMA!!!
    A continuación, queremos "comparar la configuración con la configuración de la base de datos" y vemos una lista de todos los cambios realizados por otros programadores del grupo durante el día anterior. Si tiene preguntas sobre los cambios, comuníquese con la persona que los realizó.
    Una vez resuelto todo, lo guardamos en la base de datos.
    ¿Por qué no compararlo con la configuración de almacenamiento? En primer lugar, para que no se muestren los objetos en los que usted mismo está trabajando y, en segundo lugar, funciona más rápido.
    2. A mitad del día: los cambios urgentes (para actualizaciones dinámicas) se envían al repositorio inmediatamente. No urgente: después de cambiar todos los objetos relacionados. (ver explicación a continuación)
    3. Al final del día (y si necesita realizar una actualización completa de la base de datos, antes), almacenamos todo lo que podemos.
    Este no es un pedido obligatorio, pero sí muy conveniente.

    4. ¿Por qué no lo publicamos de inmediato?
    porque 1C controla la integridad de los cambios solo donde hay un enlace. Es decir, si, por ejemplo, creó un directorio "Coches del cliente" y le agregó un enlace en la "factura", entonces podrá colocar la "Factura" en el almacenamiento solo después (o simultáneamente) con el directorio "Cliente Carros". Pero si, por ejemplo, utilizó este directorio en un procedimiento de módulo general, que se llama al contabilizar una factura, entonces este módulo general puede caber fácilmente en el almacenamiento sin necesidad de colocar el directorio. Si después de esto otro programador recibe este módulo del repositorio, las facturas ya no se publicarán en su base de datos. (Y si actualiza la base de datos principal, también se detendrán allí).
    Y ese es otro buen caso, porque es simplemente un error. Pero si, por ejemplo, cambiaste el tipo de atributo en un documento de cadena a texto y en el procedimiento del módulo general había un check If Attribute = "1" y pasó a ser If Attribute = 1 y el módulo se colocó en almacenamiento pero el documento no estaba, entonces no habrá ningún error (hola al control de tipo de ausencia), lo que significa que aquellos que reciban dicho módulo tendrán documentos elaborados incorrectamente (y es bueno si esta no es la base de datos principal). Por lo tanto, es mejor enviar los cambios al repositorio como un "paquete completo" (todos los objetos cambiaron en un tema), si necesita algo para otra tarea, puede tomarlo inmediatamente para uno nuevo o simplemente "dejarlo capturado". al colocarlo en el repositorio.

    En este sentido, no entendí del todo:

    Si hay muchos programadores, entonces los cambios de todos deben enviarse al Repositorio uno por uno, habiendo subido PRELIMINAR el trabajo de todos a archivos externos con la configuración de la base de datos local y (si la fusión se realiza desde diferentes estaciones de trabajo), sin olvidar ACTUALIZAR el bases de datos locales del Repositorio antes de cada fusión, a la última versión, con los cambios de los camaradas previamente conectados presentes allí.

    Curiosamente, no hubo problemas cuando varias personas hicieron cambios a la vez, excepto que se ralentizó un poco. Es por esto que la captura de objetos está diseñada para que 2 personas no arreglen lo mismo a la vez. Además, se observó que: si un desarrollador cambió un documento, diga "Informe avanzado", y luego el segundo no lo "recibió", sino que lo captura inmediatamente (por ejemplo, un objeto acaba de almacenarse), entonces 1C rastreará esto y se lo entregará en una versión nueva y modificada. (Sucede muy gracioso - miras el documento - 5 detalles, agárralo - ya 15).

    Y tampoco entiendo por qué debería subir el trabajo a archivos externos.

    4. Es más fácil para los programadores crear copias de la base de datos no cargando y descargando 1Sovskaya (ya que requiere un modo exclusivo y no es muy rápido), sino restaurando una copia de seguridad o simplemente copiando la base de datos en la mejilla.

    5. Si necesita agregar un nuevo objeto (documento, libro de referencia, etc.), tome la raíz de configuración, agréguela, agregue un mínimo de detalles (los objetos completamente "vacíos" no siempre se guardan), deposite la raíz en el almacenamiento (este objeto también será entregado al mismo tiempo) y recoger el objeto nuevamente. (Para no mantener la raíz capturada durante mucho tiempo, otros también la necesitan).

    6. Si desea corregir los derechos de acceso a un objeto, lo ha capturado, pero los derechos de acceso aún no están disponibles, tome el rol correspondiente.

    7. Dado que la depuración se realiza mejor utilizando los datos más recientes, es necesario actualizar las bases de datos en funcionamiento. Para hacer esto: coloque todos los cambios en el almacenamiento, desconecte la base de datos del almacenamiento, copie la base de datos principal en el back-end (desde una copia de seguridad o simplemente cópiela), conéctela nuevamente.

    8. Cuando “obtenemos todo del almacenamiento” (paso 1), sucede que 1C genera un montón de mensajes y luego escribe que “falló” (la lista de objetos cambia). Esto significa que no hemos recibido cambios durante mucho tiempo. Está bien, haga clic en Aceptar nuevamente y así sucesivamente hasta que funcione como debería.

    9. A veces, 1C se niega a guardar los cambios recibidos del repositorio y el mensaje no está del todo claro. Los culpables suelen ser los "registros de información". Descubrimos qué registro de información ha cambiado su estructura, eliminamos todos los registros en nuestra base de datos, después de lo cual todo se actualizará como debería.

    10. Dado que las bases de datos de trabajo se crean a partir de la principal, los nombres de las configuraciones son los mismos y es fácil confundirlos, y luego comienzan los malentendidos cuando el usuario dice que él tiene 100 rublos en su informe y usted tiene 100.000 rublos. . Como opción, agregamos una línea al módulo de la aplicación que verifica cuando se inicia el programa qué tipo de base de datos es y, si no es la principal, la muestra en el título del programa 1C (por ejemplo, “BASE DE TRABAJO DEL PROGRAMADOR IVANOV”)

    11. Cuando la base de datos está conectada al almacenamiento, pero al inicio no fue posible conectarse a ella por algún motivo, puede aparecer el mensaje "Error al conectarse, desconectarse del almacenamiento" (y ha capturado objetos): aquí RESPUESTA "NO". Pero si accidentalmente responde "sí", ¡no intente conectarse nuevamente! ¡Primero guarde la configuración en un archivo! Desde que nos conectamos al almacenamiento, toda la configuración de la base de datos se reemplaza con la configuración del almacenamiento. Después de eso, cargamos los cambios del archivo guardado y seguimos trabajando.