2014-01-03 5 views
1

У меня есть пара машин в доме, каждый из которых имеет разное количество дискового пространства, и я хотел бы сделать их доступными через API, совместимый с S3. Я нашел много инструментов, которые преобразуют S3 в общий ресурс SMB или в дисковод Windows/Linux/OSX, но ничего, что делает это наоборот.S3 API для SMB File Share

Есть ли примеры реализации совместимого с S3 API, который использует общий ресурс диска или файла в качестве хранилища резервных копий? Я не слишком беспокоюсь о избыточности (уже посмотрел на OpenStack, но для моих нужд это кажется более убитым). Я .NET Dev, поэтому код C# предпочтительнее, но даже код на другом языке, чтобы увидеть, как реализовать совместимый API, может помочь.

[Уточнение: я знаю, что многие люди смотрят на перемещение своего хранилища вне дома и используют S3 в качестве одной из основных систем хранения, но некоторым нашим клиентам нужны данные, хранящиеся в доме по юридическим причинам или по скорости , Внедрение чего-то, что будет использовать один и тот же API для S3 или внутренней системы, при поддержке SAN, было бы удобно.]

ответ

1

Я понимаю причины, по которым вы это делаете, но я настоятельно рекомендую.

Вместо того, чтобы использовать S3 в качестве интерфейса для хранения в вашем приложении, я бы предложил создать абстрактный API, который будет действовать как интерфейс для хранения. Таким образом, вы можете создать любой адаптер под ним, который будет подключаться к любому любому sorge API, который вам нравится: локальный диск/удаленный диск/db/S3/Azure и т. Д.

Это я считаю лучшим архитектурным шаблоном, предлагая. Красота много раз. Во-первых, вы получаете код «Мне все равно, где хранится». Во-вторых, вы освободили себя от ограничения S3, поскольку вы можете добавить любую функцию, которая вам нравится, поверх S3, без влияния вашего кода. Еще одно преимущество заключается в том, что вы, вероятно, можете найти хороший предварительно написанный код для всех разных магазинов, с которыми вы хотите работать.

+0

Да, это то, над чем я работал в данный момент ... все чтения и записи файлов идут через API, который затем, в свою очередь, разговаривает с Службой Windows, которая затем записывает на SMB, но эта служба Windows или даже API могут разговаривать в любом месте. Но это очень «обычай» сервис ... быть в состоянии получить что-нибудь, что обычно говорит с S3 (CyberDuck приходит на ум), чтобы поговорить с нашим файлом поделиться может быть удобно. плюс это означает, что нам не нужно реализовывать API. – TiernanO

1

Я нашел следующий Java-проект, s3proxy, который прокси S3 запрашивает несколько разных поставщиков, включая файловую систему. Я еще не полностью опробовал его, но его начало, где я хочу идти, то есть мне не нужно управлять собственным API и ключами для хранения ...