Перейти к содержимому
YouTuBrine

Облачный сервер

Рекомендуемые сообщения

Кто может сделать сетевой облачный сервер на OpenComputers?

Идеи:

 

  • Графический интерфейс
  • Удобный поиск файлов
  • Обмен между компьютерами

Готово? Пиши в лс!

 

-----------------------------

 

Награда - сюрприз! ;)

Изменено пользователем YouTuBrine
  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А награда какая?Вряд-ли кто-то бесплатно что-то сделает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я не понял, надо сделать интерфейс к уже существующему облаку или сделать облако на основе файловой системы OpenComputers?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я не понял, надо сделать интерфейс к уже существующему облаку или сделать облако на основе файловой системы OpenComputers?

OpenCloud короче.

Вот только нафиг он?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

OpenCloud короче.

Вот только нафиг он?

 

Странно слышать такое от главного идеолога OpenClouds.

  • Нравится 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Но для чего ЮтурБайну понадобился еще и облачный? :)

Ну и хотя бы пару блоков угля в награду предложил или алмазик)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделал набросок файлопомойки.
Очень примитивная штука, даже не факт, что работает.

 

Сервер:

 

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 кб на одного пользователя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделал набросок файлопомойки.

Очень примитивная штука, даже не факт, что работает.

 

Сервер:

 

 

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 кб на одного пользователя.

А как узнать имя пользователя и пароль?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кто может сделать сетевой облачный сервер на OpenComputers?

 

Еще в октябре начал разработку некого облака cloud, то есть синхронизация файлов с ПК на сервера (OC-блоки, не в Интернет).

Но она сырая и неинтересная никому.

К тому же я "КОНСОЛЬЩИК", то есть все только на консоли (без гуи).

Так что пока я смысла тоже в этом не вижу.

 

Упс, опять поднял тему со времен динозавров.

Сейчас опять Алекс ругаться будет :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...