YouTuBrine 1 Опубликовано: 19 декабря, 2015 (изменено) Кто может сделать сетевой облачный сервер на OpenComputers? Идеи: Графический интерфейс Удобный поиск файлов Обмен между компьютерами Готово? Пиши в лс! ----------------------------- Награда - сюрприз! Изменено 16 января, 2016 пользователем YouTuBrine 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant 442 Опубликовано: 19 декабря, 2015 А награда какая?Вряд-ли кто-то бесплатно что-то сделает... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 19 декабря, 2015 Я не понял, надо сделать интерфейс к уже существующему облаку или сделать облако на основе файловой системы OpenComputers? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 19 декабря, 2015 Я не понял, надо сделать интерфейс к уже существующему облаку или сделать облако на основе файловой системы OpenComputers? OpenCloud короче. Вот только нафиг он? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 19 декабря, 2015 OpenCloud короче. Вот только нафиг он? Странно слышать такое от главного идеолога OpenClouds. 5 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 19 декабря, 2015 Ну крипер бы еще с ним с файловым сетевым хранилищем, хоть и не понятно совершенно, кто в майне будет хранить свои личные файлы там и зачем. Но для чего ЮтурБайну понадобился еще и облачный? Ну и хотя бы пару блоков угля в награду предложил или алмазик) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob 2 749 Опубликовано: 19 декабря, 2015 Сделал набросок файлопомойки.Очень примитивная штука, даже не факт, что работает. Сервер: local filesystem = require('filesystem') local component = require('component') local modem = component.modem local event = require('event') local file, file1, e local port = 1234 --[[ name, pass, cmd, filename, file /pomojka /name /name_share ]] local function main() while 1 do e = {event.pull()} if e[1] == 'modem_message' then local path = '/pomojka/'..e[6]..'/' if not fs.exists(path) then filesystem.makeDirectory(path) filesystem.makeDirectory('/pomojka/'..e[6]..'_share/') file = io.open(path..'pass.cfg', 'w') file:write(e[7]) file:close() end file = io.open(path..'pass.cfg', 'r') if file:read() == e[7] then if e[8] == 'list' then if component.filesystem.list(path) ~= nil then modem.send(e[3], port, table.unpack(component.filesystem.list(path))) end elseif e[8] == 'upload' then if filesystem.size(path..e[9]) < 2048 then print(path..e[9]) print(e[10]) file1 = io.open(path..e[9], 'w') file1:write(e[10]) file1:close() end elseif e[8] == 'download' then file1 = io.open(path..e[9], 'r') modem.send(e[3], port, file1:read()) file1:close() elseif e[8] == 'delete' then filesystem.remove(path..e[9]) end end file:close() elseif e[1] == 'component_added' and e[3] == 'filesystem' then os.excute('mount '..e[2].sub(1, 3)..' /pomojka/') end end end modem.open(port) main() Клиент: local component = require('component') local modem = component.modem local event = require('event') local file, e local server = 'address' local port = 1234 tArgs = {...} modem.open(port) if tArgs[3] == 'list' then modem.send(server, port, table.unpack(tArgs)) e = {event.pull(5, 'modem_message')} if e[3] == server then list = table.pack(e) for i = 5, #list do io.write(list[i]..'\n') end end elseif tArgs[3] == 'download' then modem.send(server, port, table.unpack(tArgs)) e = {event.pull(5, 'modem_message')} if e[3] == server then file = io.open(tArgs[4], 'w') file:write(e[6]) file:close() end elseif tArgs[3] == 'upload' then file = io.open(tArgs[4], 'r') modem.send(server, port, table.unpack(tArgs), file:read()) file:close() elseif tArgs[3] == 'delete' then modem.send(server, port, table.unpack(tArgs)) else print('Использование:\n <имя> <пароль> [list]\n <имя> <пароль> [download] <файл>\n <имя> <пароль> [upload] <файл>\n <имя> <пароль> [delete] <файл>') end modem.close(port) Можно устанавливать RAID на лету. Загружать/читать/удалять файлы. Ограничение 2 кб на одного пользователя. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
YouTuBrine Автор темы 1 Опубликовано: 16 января, 2016 Сделал набросок файлопомойки. Очень примитивная штука, даже не факт, что работает. Сервер: local filesystem = require('filesystem') local component = require('component') local modem = component.modem local event = require('event') local file, file1, e local port = 1234 --[[ name, pass, cmd, filename, file /pomojka /name /name_share ]] local function main() while 1 do e = {event.pull()} if e[1] == 'modem_message' then local path = '/pomojka/'..e[6]..'/' if not fs.exists(path) then filesystem.makeDirectory(path) filesystem.makeDirectory('/pomojka/'..e[6]..'_share/') file = io.open(path..'pass.cfg', 'w') file:write(e[7]) file:close() end file = io.open(path..'pass.cfg', 'r') if file:read() == e[7] then if e[8] == 'list' then if component.filesystem.list(path) ~= nil then modem.send(e[3], port, table.unpack(component.filesystem.list(path))) end elseif e[8] == 'upload' then if filesystem.size(path..e[9]) < 2048 then print(path..e[9]) print(e[10]) file1 = io.open(path..e[9], 'w') file1:write(e[10]) file1:close() end elseif e[8] == 'download' then file1 = io.open(path..e[9], 'r') modem.send(e[3], port, file1:read()) file1:close() elseif e[8] == 'delete' then filesystem.remove(path..e[9]) end end file:close() elseif e[1] == 'component_added' and e[3] == 'filesystem' then os.excute('mount '..e[2].sub(1, 3)..' /pomojka/') end end end modem.open(port) main() Клиент: local component = require('component') local modem = component.modem local event = require('event') local file, e local server = 'address' local port = 1234 tArgs = {...} modem.open(port) if tArgs[3] == 'list' then modem.send(server, port, table.unpack(tArgs)) e = {event.pull(5, 'modem_message')} if e[3] == server then list = table.pack(e) for i = 5, #list do io.write(list[i]..'\n') end end elseif tArgs[3] == 'download' then modem.send(server, port, table.unpack(tArgs)) e = {event.pull(5, 'modem_message')} if e[3] == server then file = io.open(tArgs[4], 'w') file:write(e[6]) file:close() end elseif tArgs[3] == 'upload' then file = io.open(tArgs[4], 'r') modem.send(server, port, table.unpack(tArgs), file:read()) file:close() elseif tArgs[3] == 'delete' then modem.send(server, port, table.unpack(tArgs)) else print('Использование:\n <имя> <пароль> [list]\n <имя> <пароль> [download] <файл>\n <имя> <пароль> [upload] <файл>\n <имя> <пароль> [delete] <файл>') end modem.close(port) Можно устанавливать RAID на лету. Загружать/читать/удалять файлы. Ограничение 2 кб на одного пользователя. А как узнать имя пользователя и пароль? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SDV 784 Опубликовано: 3 февраля, 2016 Кто может сделать сетевой облачный сервер на OpenComputers? Еще в октябре начал разработку некого облака cloud, то есть синхронизация файлов с ПК на сервера (OC-блоки, не в Интернет). Но она сырая и неинтересная никому. К тому же я "КОНСОЛЬЩИК", то есть все только на консоли (без гуи). Так что пока я смысла тоже в этом не вижу. Упс, опять поднял тему со времен динозавров. Сейчас опять Алекс ругаться будет Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах