Android storage: internal, external, removable. часть 1/3

Финансы

Public Storage — это «самоуправляемый, самоуправляемый» инвестиционный фонд недвижимости (REIT). REIT — это организация, которая в основном покупает и управляет инвестициями в недвижимость и возвращает инвесторам не менее 90 процентов своих доходов. Он объединяет капитал большого количества инвесторов для проектов в сфере недвижимости. По состоянию на 2008 год Public Storage была крупнейшей из четырех публично торгуемых REIT для самостоятельного хранения. По состоянию на 2013 год его норма прибыли составляла 50 процентов, что является третьим по величине в рейтинге S&P 500. Объем общественного хранилища вырос на 17% ежегодно, включая дивиденды за последние 20 лет (по состоянию на первый квартал 2016 года). Это темпы роста, которые вдвое превышают S&P 500 .

Более 90 процентов доходов Public Storage приходится на операции самостоятельного хранения; он также обеспечивает страхование, упаковку продуктов и имеет 44% -ную долю в PS Business Parks . В 1984 году была создана компания PS Reinsurance для продажи страховки содержимого хранилища. В 1995 году была создана PS Orangeco как дочерняя компания, занимавшаяся продажей ящиков, упаковки, проката грузовиков и других материалов для переезда.

Рональд Л. Хавнер-младший, тогдашний генеральный директор Public Storage, заработал 10,5 миллиона долларов в 2017 году.

Состояние на текущий момент

Гугл утверждает, что с версии Android 10 Q стандартный доступ к файлам будет прекращён. Ещё в Android 4.4 появился Storage Access Framework, который и должен стать заменой для работы с файлами.

Методы Environment.getExternalStorageDirectory() и Environment.getExternalStoragePublicDirectory() признаны устаревшими и будут недоступны. Даже если они будут возвращать корректные значения, ими вы не сможете воспользоваться.

В Android 7.0 добавили исключение FileUriExposedException, чтобы разработчики перестали использовать схему file://Uri.

Можно создавать файлы в корневой папке карточки при помощи Environment.getExternalStorageDirectory(), а также папки с вложенными файлами. Если папка уже существует, то у вас не будет доступа на запись (если это не ваша папка).

Если вы что-то записали, то сможете и прочитать. Чужое читать нельзя.

Кстати, разрешения на чтение и запись файлов не требуются, а READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE объявлены устаревшими.

Другие приложения не могут получить доступ к файлам вашего приложения. Файлы, которые вы создали через getExternalFilesDir(), доступны через Storage Access Framework, кроме файлов, созданных в корне карточки (что-то я совсем запутался). Ещё можно дать доступ через FileProvider.

При подключении USB-кабеля через getExternalFilesDir(), вы можете увидеть свои файлы и папки, а также файлы и папки пользователя. При этом файлы и папки пользователя на корневой папке вы не увидите. Вам не поможет даже adb или Device File Explorer студии.

Что делать?

Пользуйтесь методами класса Context, типа getExternalFilesDir(), getExternalCacheDir(), getExternalMediaDirs(), getObbDir() и им подобными, чтобы найти место для записи.

Используйте Storage Access Framework.

Используйте MediaStore для мультимедийных файлов.

Используйте FileProvider, чтобы файлы были видимы другим приложениям через ACTION_VIEW/ACTION_SEND.

Android 10: Появился новый флаг android:allowExternalStorageSandbox=»false» и метод Environment.isExternalStorageSandboxed() для работы с песочницей. Флаг android:requestLegacyExternalStorage=»true» для приложений, которые ещё используют старую модель доступа к файлам.

Как временное решение можно добавить в блок манифеста application атрибут android:requestLegacyExternalStorage=»true», чтобы доступ к файлам был как раньше в Android 4.4-9.0.

Open source solutions

Open source generally refers to a universal or non-proprietary software development model. An open source developer environment encourages collaboration. The general public has free availability to all source code, documentation, software development kits (SDKs) and application programming interfaces (APIs) within the environment. Developers and programmers can modify and improve upon source code, then share, distribute, or publish these efforts within the developer community. Other developers can then download this code or further modify it.

Open source technologies give you maximum flexibility and control over your data management and storage options. With open-source tools and access to open APIs, you can customize the code to suit your organization’s specific requirements. You are not locked into proprietary technologies as you develop, but will have the freedom to utilize existing hardware you may own (or a mix of vendor hardware). You will also benefit from other developer’s efforts within the broader community.

With regard to object-based storage systems, there are several open source solutions available, such as from Ceph, MinIO, Openio.io, and SwiftStack/OpenStack Swift. While these tout differing features, policy options, and methodologies, each has the same goal—to enable large-scale storage of unstructured, digital data.

All major open source technology solutions adhere to Amazon’s Simple Storage Service (Amazon S3) object storage protocol. First introduced in 2006, it has since become the de-facto standard for cloud storage. Each offers an open-source object storage server compatible with Amazon S3 RESTful APIs. Many also offer their own open API as an alternative. OpenStack Swift, for example, not only supports Amazon’s S3 API but also offers its own Swift Open API with some unique capabilities. Ceph Object Storage and Openio.io are S3-compatible, but also support a large subset of the OpenStack Swift API.

Self storage в Великобритании

По оценкам Self Storage Association UK, в I кв. 2016 г. в Великобритании насчитывалось 1077 складских комплексов формата self storage, включая комплексы, предоставляющие услуги контейнерного хранения. Объем площадей складских объектов в формате self storage к I кв. 2016 г. достиг 3493 тыс. м24). Прирост площадей в 2015 г. в сегменте составил 176 тыс. м2, в 2014 г. – 121 тыс. м2.

Крупнейшие операторы складов формата self storage в Великобритании
Бренд Кол-во владений
Safestore 107
Big Yellow 73
Access Self Storage 58
Lok’nStore 25
Shurgard 25
Storage King 24
Big Box 15
Armadillo 16
Alligator 12
Всего 355

Обеспеченность площадями формата self storage в I кв. 2016  г. находилась на уровне 54 м2 на 1000 чел. Доходность (первичная ставка капитализации), по данным одного из крупнейших операторов, находилась на уровне 6,5% 5). Оборот индустрии за 2015 г. оценивался в 440 млн. ф. ст.

Всего на сегодняшний день на рынке Великобритании действуют около 490 операторов складов формата self storage. К наиболее крупным операторам относятся Safestore, Big Yellow, Lok’nStore Self Storage, Storage King. Более трети всех комплексов формата self storage находится под управлением крупного (10 и более владений) оператора. Из расчета общей площади и выручки этих комплексов на долю профессиональных операторов складов приходится около 50% рынка.

Площадь склада формата self storage в среднем составляет 4 тыс. м2 и состоит из 647 индивидуальных отсеков средней площадью 6,3 м2. При том что на рынке присутствуют самые разные по площади объекты от 450 до 8500 м2, размер большинства комплексов располагает площадями в диапазоне от 2800 до 5100 м2.

Однако, оценивая состояние отрасли на сегодняшний день, многие эксперты считают, что индустрия складов формата self storage в Великобритании все еще находится в «младенческом возрасте» развития.

4) Cushman & Wakefieled LLP, Self Storage Association UK, 2016; FEDESSA & JLL, Mar 20165) Big Yellow, 31 March 2016 Report

SAN

Storage area network, она же сеть хранения данных, является технологией организации системы хранения данных с использованием выделенной сети, позволяя таким образом подключать диски к серверам с использованием специализированного оборудования. Так решается вопрос с утилизацией дискового пространства серверами, а также устраняются точки отказа, неизбежно присутствующие в системах хранения данных на основе DAS. Сеть хранения данных чаще всего использует технологию Fibre Channel, однако явной привязки к технологии передачи данных — нет. Накопители используются в блочном режиме, для общения с накопителями используются протоколы SCSI и NVMe, инкапсулируемые в кадры FC, либо в стандартные пакеты TCP, например в случае использования SAN на основе iSCSI.

Давайте разберем более детально устройство SAN, для этого логически разделим ее на две важных части, сервера с HBA и дисковые полки, как оконечные устройства, а также коммутаторы (в больших системах — маршрутизаторы) и кабели, как средства построения сети. HBA — специализированный контроллер, размещаемый в сервере, подключаемом к SAN. Через этот контроллер сервер будет «видеть» диски, размещаемые в дисковых полках. Сервера и дисковые полки не обязательно должны размещаться рядом, хотя для достижения высокой производительности и малых задержек это рекомендуется. Сервера и полки подключаются к коммутатору, который организует общую среду передачи данных. Коммутаторы могут также соединяться с собой с помощью межкоммутаторных соединений, совокупность всех коммутаторов и их соединений называется фабрикой. Есть разные варианты реализации фабрики, я не буду тут останавливаться подробно. Для отказоустойчивости рекомендуется подключать минимум две фабрики к каждому HBA в сервере (иногда ставят несколько HBA) и к каждой дисковой полке, чтобы коммутаторы не стали точкой отказа SAN.

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

Diskpart

Нам снова понадобится командная строка которая как вы помните находится в меню «Пуск». Пишем cmd.exe Примечание : Если вы видите сообщение «отказано в доступе», вам потребуется запустить cmd.exe с правами администратора. Для этого щелкните ПКМ на командной строке в меню «Пуск» и в появившемся меню нажмите «Запуск от имени админ-ра». Если вы пользуетесь Windows 10, просто нажмите ПКМ на значек «Пуск» (внизу слева от экрана) и выберите «Командная строка».

Теперь в командной строке пишем команду diskpart и нажмите Enter. Далее прописываем list disk . Будьте внимательны при выборе , если вы укажите не тот диск, то уничтожите все данные на выбранном диске! Выберите диск & (где & — номер вашей флешки – для определения используйте емкость накопителя, например ваш накопитель 32GB. Теперь находите в таблице эту емкость, она будет приблизительной.) Пишите — select disk & (& — номер вашей флешки) ,Enter прописываете attributes disk clear readonly, нажмите Enter и команда exit Вот и все. Теперь флешка должна работать как обычно.

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

Источник статьи: http://www.sety24.ru/kompyuter/fleshka-zashhishhena-ot-zapisi-kak-snyat-zashhitu.html

Российские реалии

В России рынок складской недвижимости SelfStorage появился не так давно. Первые по-мещения для индивидуального хранения открылись на рубеже 2007 – 2008 годов. При этом на рынке представлены лишь несколько крупных компаний, которые готовы инве-стировать в этот сектор. Аналитики неоднозначно оценивают дальнейшую судьбу SelfStorage в России. Так, Вячеслав Холопов, директор департамента индустриальной и складской недвижимости, земли по России и странам СНГ компании KnightFrank, считает: «Перспективы развития Self Storage в России в ближайшие годы достаточно слабые, так как подобные услуги не дешевые и будут востребованы преимущественно в крупных мегаполисах, таких как Москва и Санкт Петербург — то есть в тех городах, где уровень жизни выше среднего по стране. Большая часть населения в России по привычке хранит свои личные вещи на дачах и балконах, и на сегодняшний день культура использования решений SelfStorage у наших сограждан еще не привилась». Кроме того, Вячеслав Холопов уверен, что нужно иметь в виду и такие особенности, как периодически меняющаяся политика по развитию города и его транспортным ограничениям. Так, например, в СМИ периодически фигурирует информация о выводе производственно-складских объектов за черту города Москвы и ограничении грузового транспорта. В Петербурге многие строения на центральных улицах являются историческими памятниками, а объекты Self Storage иногда требуют серьезной реконструкции. В мегаполисах многие объекты, подходящие под склады, зачастую не соответствуют планам БТИ из-за того, что собственники производили работы по увеличению существующих площадей за счет строительства временных сооружений с целью получения большей прибыли со сдаваемой площади. Зачастую склады сдаются на срок до 12 месяцев – это максимальный срок, при котором договор не требует регистрации и, следовательно, не требуется приведение объектов в соответствие с планами БТИ для обмеров.

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

Однако некоторые представители бизнеса более позитивно оценивают будущее развитие рынка Self Storage в России. Например,Алексей Тулешов, генеральный директор проекта «Сити Бокс», уверен в успехе Self Storage: «Перспективы у рынка складов индивидуального хранения в России достаточно оптимистичные. Хотя сегодня склады selfstorage представлены только в Москве (где их около 15) и в Санкт-Петербурге (где открыто пока 3 объекта), игроки рынка уже проявляют интерес к городам-миллионникам в регионах России: смотрят объекты, работают с брокерами в этом направлении. Думаю, в регионах реально открывать по 1 объекту данного формата в год, для одной компании. А в Москве емкость рынка позволяет открыть в течение 5 лет не менее 50 складов Self Storage. В компании «Сити Бокс» инвестиционный план предусматривает открытие 24 объектов в Москве и Санкт-Петербурге в ближайшие 3-4 года».

# Examples

The following sections demonstrate how to use to address some common use cases.

Synchronous response to storage updates

If you’re interested in tracking changes made to a data object, you can add a listener to its event. Whenever anything changes in storage, that event fires. Here’s sample code to listen for saved changes:

We can take this idea even further. In this example we have an options page that allows the user to toggle a «debug mode» in the extension (implementation not shown here). Changes to this setting are immediately saved to sync storage by the options page and the background script uses to apply the setting as soon as possible.

Asynchronous preload from storage

Since service workers are not always running, Manifest V3 extensions sometimes need to asynchronously load data from storage before they execute their event handlers. To do this, the below snippet uses an async event handler that waits for the global to be populated before executing its logic.

Подключение к существующему серверу vCenter

Выбрав «Connect», мы подключились к веб-странице сервера хранения и вошли в систему под именем admin. Мы установили флажок «Use an existing vCenter Server», а затем указали информацию для сервера vCenter. В мастере также есть возможность создать новый сервер vCenter.

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

Мы выбрали два сервера ESXi, которые мастер обнаружил автоматически. Мы указали IP-информацию для iSCSI и пароли для серверов ESXi и iLO. Затем нам предложили добавить хранилище данных, что мы и сделали. Мы создали хранилище данных VMFS.

Нам представили сводку введенных параметров конфигурации, после чего был создан кластер dHCI. Этот процесс включал в себя настройку серверов ESXi, настройку кластера, регистрацию плагина vCenter Server и настройку хранилища. Затем нам предложили запустить интерфейсы vCenter или HPE Nimble. Мы выбрали «Launch vCenter UI», однако, если бы мы выбрали «Launch HPE Nimble Storage UI», мы могли бы получить более расширенные настройки, такие как шифрование, интеграция с AD и интеграция с Cloud Volumes. HPE сообщил, что эти функции вскоре будут доступны в плагине vCenter dHCI.

Нас интересовало, насколько автоматизирован процесс внедрения HPE Nimble Storage dHCI в новой среде, поэтому мы наблюдали, как это делает HPE.

Настройка HPE Nimble Storage

Мы подключили наш лэптоп к той же сети, что и массив HPE Nimble Storage. Затем мы открыли браузер и ввели серийный номер массива в формате https://<серийный номер>.local. Это вызвало веб-мастер настройки HPE Nimble.

Мы выбрали опцию «Set up this array (but do not join a group)» и нажали «Далее». В мастере мы указали имя для массива и параметры сети, и создали пароль для массива. Инициализация массива заняла несколько минут, после чего он вызвал конфигуратор стека. Мы вошли в систему как admin. В верхней части мастера была диаграмма, демонстрирующая ход процесса установки.

В конфигураторе стека нас попросили предоставить информацию об управлении сетью. Нажав «Finish», мы получили сообщение о том, что настройка массива завершена и службы запущены.

What is an object storage database?

We learned above that you can use simple API calls to upload and retrieve files in an object storage system. But an application also needs the object’s metadata in order to locate the proper object in storage. This is where an object storage database comes into play. This database provides a directory of sorts that uses the object’s metadata to locate the appropriate data files in a distributed storage system.

Each object storage group has an object storage database that contains two tables. One table is an object directory and the other table is for the object storage.

The object directory table contains descriptive information about each object (the metadata). This directory keeps track of all objects in the storage hierarchy by recording the collection name identifier, the object name, and other pertinent information. For example, in IBM’s object storage methodology, the object directory table includes three “indexes»:

  • The Object Creation Time Stamp
  • The Collection Name Identifier (Name ID), Pending Action Data and Object Creation Time Stamp
  • The Object Name and Collection Name Identifier

The second table in the object storage database is the object storage table, which contains the data content/file itself (the objects). The data (fixed digital content such as video and image files or large libraries of documents) sits in the object store, while the metadata (contextual information about the data, including the name ID) resides in a database/object directory table.

When an application “posts” a file, it creates the metadata and stores it in the object directory table within the object storage database, along with “putting” the file to the object storage table. To retrieve the file later, the application queries the object directory/database for the metadata and uses that descriptive, identifying information to locate or “get” the data.

Обновление HPE Nimble dHCI

Обновления – одна из самых болезненных операций, с которыми сталкивается администратор. Необходимость проверки совместимости, и того, что все необходимые компоненты обновляются в правильной последовательности, может нервировать даже самого стойкого администратора. К счастью, плагин dHCI делает это за вас и обновит прошивку массива, Nimble Storage Connection Service (NCS) и узлы ESXi в кластере.

Чтобы выполнить обновление, вы выбираете кластер dHCI, который хотите обновить, открываете вкладку «Update», а затем выбираете обновление, которое хотите инициировать. Файлы, необходимые для обновления, включая ISO-образ ESXi, загружаются через плагин.

После завершения предварительной проверки будет обновлен массив HPE Nimble, а затем серверы.

Обновления выполняются последовательно, чтобы исключить простои кластера.

Object storage and IBM

IBM Cloud Object Storage is a pay-as-you-go service available for storing large volumes of data, securely and reliably. Your enterprise, for example, can use IBM Cloud Object Storage for data archiving and backup, for web and mobile applications, and as a persistent and scalable store for analytics and as a persistent and scalable store for analytics, such as using it in combination with IBM Analytics Engine for Hadoop clusters. You will reduce your organization’s on-site IT infrastructure by using low-cost cloud storage while keeping your data accessible when needed.

Your data is protected with default server-side encryption. You can manage your own encryption keys or select auto-management using the IBM Key Protect cloud-based security service. You can also set role-based policies, grant permissions, assign user roles, and control user actions with a subscription to IBM Cloud Identity and Access Management (IAM) that supports a Single Sign-On (SSO), multifactor authentication, identity governance, and thousands of pre-built connectors and pre-built templates.

Furthermore, you are assured of storage availability on the order of 10 nines (that’s 99.99999999 percent uptime). IBM builds in data-integrity mechanisms to constantly and automatically check object state and self-apply repairs. IBM Cloud Object Storage leverages geographically dispersed erasure coding, enabling increased data durability and availability without the need for replication. And with the integrated IBM Aspera high-speed data transfer option, you will be able to easily and rapidly transfer data to and from Cloud Object Storage. You can also use another data replication tool, IBM Big Replicate, for continuous data replication from Hadoop data clusters to IBM Cloud Object Storage.

IBM Cloud Object Storage subscription pricing is based on regional location, storage class, and the resiliency option selected. You can select from multiple storage classes or tiers depending on data types. These include Standard (active data accessed multiple times a month), Vault (cool data accessed less than once a month), Cold Vault (cold data rarely accessed), and Flex (dynamic data that is a mix of hot and cold workloads). Objects can also be archived into lower-cost, long-term storage.

Check out the FAQ page to learn more about IBM Cloud Object Storage.

Build storage skills through the IBM Cloud Object Storage course contained within the Cloud Developer Professional curriculum.

Sign up for an IBMid and create your IBM Cloud account.

Что такое Internal Storage и где находится

Internal Storage в Android, как и следует из названия, – это внутренняя память устройства. Она есть у каждого девайса независимо от того, поддерживаются ли карты памяти. Внутреннее хранилище является защищённой областью встроенной памяти, где может безопасно храниться пользовательская информация. Папка Internal Storage в Android находится в системном разделе /data.

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

ВАЖНО

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

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

Объем памяти в настройках смартфона

Обычно найти папку можно в папке data/data/your.application.package.appname/someDirectory/

ВНИМАНИЕ. Конкретное расположение, где будут размещены файлы на Android-устройстве, может отличаться в зависимости от модели девайса и версии ОС, поэтому не нужно использовать заданные пути.. Пространство внутренней памяти устройства ограничено, и если требуется сохранить большой объём данных, лучше использовать другой тип хранения

Пространство внутренней памяти устройства ограничено, и если требуется сохранить большой объём данных, лучше использовать другой тип хранения.

СОВЕТ. Хотя приложения и устанавливаются по умолчанию в Internal Storage, в файле манифеста можно указать атрибут android:installLocation, после чего программу можно установить и на External Storage. Эта возможность выручает, когда файл слишком большой.

How it works

Objects are discrete units of data that are stored in a structurally flat data environment. There are no folders, directories, or complex hierarchies as in a file-based system. Each object is a simple, self-contained repository that includes the data, metadata (descriptive information associated with an object), and a unique identifying ID number (instead of a file name and file path). This information enables an application to locate and access the object. You can aggregate object storage devices into larger storage pools and distribute these storage pools across locations. This allows for unlimited scale, as well as improved data resiliency and disaster recovery.

Object storage removes the complexity and scalability challenges of a hierarchical file system with folders and directories. Objects can be stored locally, but most often reside on cloud servers, with accessibility from anywhere in the world.

Objects (data) in an object-storage system are accessed via Application Programming Interfaces (APIs). The native API for object storage is an HTTP-based RESTful API (also known as a RESTful Web service). These APIs query an object’s metadata to locate the desired object (data) via the Internet from anywhere, on any device. RESTful APIs use HTTP commands like “PUT” or “POST” to upload an object, “GET” to retrieve an object, and “DELETE” to remove it. (HTTP stands for Hypertext Transfer Protocol and is the set of rules for transferring text, graphic images, sound, video, and other multimedia files on the Internet).

You can store any number of static files on an object storage instance to be called by an API. Additional RESTful API standards are emerging that go beyond creating, retrieving, updating, and deleting objects. These allow applications to manage the object storage, its containers, accounts, multi-tenancy, security, billing, and more.

For example, suppose you want to store all the books in a very large library system on a single platform. You will need to store the contents of the books (data), but also the associated information like the author, publication date, publisher, subject, copyrights, and other details (metadata). You could store all of this data and metadata in a relational database, organized in folders under a hierarchy of directories and subdirectories.

But with millions of books, the search and retrieval process will become cumbersome and time-consuming. An object storage system works well here since the data is static or fixed. In this example, the contents of the book will not change. The objects (data, metadata, and ID) are stored as “packages” in a flat structure and easily located and retrieved with a single API call. Further, as the number of books continues to grow, you can aggregate storage devices into larger storage pools, and distribute these storage pools for unlimited scale.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector