ProHoster > Blog > Administrazioa > 16 GB-ko torrent bat deskargatzea 4 GB-ko espazio librea duen tablet baten bidez
16 GB-ko torrent bat deskargatzea 4 GB-ko espazio librea duen tablet baten bidez
Helburua:
Internet gabe ordenagailu bat dago, baina fitxategia USB bidez transferitzeko aukera dago. Internet duen tablet bat dago eta bertatik fitxategi hau transferi daiteke. Beharrezko torrent-a deskarga dezakezu zure tabletan, baina ez dago leku libre nahikorik. Torrenteko fitxategia bat eta handia da.
Konponbiderako bidea:
Deskargatzeko torrent-a hasi nuen. Espazio librea ia desagertu zenean, deskarga eten nuen. Tableta ordenagailura konektatu eta fitxategia tabletetik ordenagailura eraman nuen. Pausa egin nuen eta nire harridurarako fitxategia berriro sortu zen eta torrenteak deskargatzen jarraitu zuen ezer gertatu ez balitz bezala.
Izan ere, torrent bezeroak jasotako datuak idazten dituen fitxategian bandera hutsa ezartzen duelako, sistema ez da 16GB aldi berean erreserbatzen saiatzen eta ez da errorerik gertatuko 4GB baino gehiagoko fitxategi batean idazten saiatzean.
Prozedura lau aldiz errepikatu ondoren, torrent bereko zati desberdinak dituzten lau fitxategi jaso ditut nire ordenagailuan. Orain, horiek bateratzea besterik ez da geratzen. Prozedura funtsean erraza da. Zero byteak beste balio batekin ordezkatu behar dituzu lau fitxategietako batean posizio jakin batean badago.
Halako programa sinple batek Interneten egon beharko lukeela iruditu zitzaidan. Inork ez al du inoiz horrelako arazorik topatu? Baina konturatu nintzen ez dakidala zein gako-hitz bilatu ere. Horregatik, azkar sortu nuen Lua script bat zeregin honetarako eta orain optimizatu dut. Hau da partekatu nahi dudana.
Torrent-a zatika deskargatzen
hasi torrent-a deskargatzen lehen gailuan
itxaron ROMa bete arte
pausatu deskarga
transferitu fitxategia bigarren gailura eta gehitu zenbaki bat fitxategiaren izenari
lehen puntura itzuliko gara fitxategia guztiz deskargatu arte
Atalak fitxategi batean bateratzea
Azken zatia jaso ondoren, fitxategi oso batean biltzea beharrezkoa da.
Zeregin erraza da:
Zati guztiak batera irakurtzea
Zati batean posizioa zero byte bat ez bada, irteeran idazten dugu, bestela zero idazten dugu
Funtzioa merge_part hari sorta bat onartzen du streams_in horietatik tamainaren zati bat irakurtzen du buffer_length eta hainbat haritako piezak batzearen emaitza itzultzen du.
function merge_part(streams_in, buffer_length)
local out_part
for _, stream in ipairs(streams_in) do
local in_part = stream:read(buffer_length)
if not out_part then
out_part = in_part -- просто копируем часть из первого файла
elseif in_part and #in_part > 0 then
if #out_part < #in_part then
out_part, in_part = in_part, out_part
end
if out_part ~= in_part -- данные различаются
and in_part:find("[^ ]") -- есть данные в in_part
and out_part:find(" ", 1, true) -- есть пустые места в out_part
then
local find_index = 1
--[[
Funtzioa string.gsub zereginerako egokia da, zeroz betetako piezak aurkituko dituelako eta ematen zaiona entregatuko duelako.
--]]
out_part = out_part:gsub(" +", function(zero_string)
if #in_part < find_index then
return -- не на что менять
end
--[[
string.gsub ez du adierazten partida zein posiziotan aurkitu den. Horregatik, posizioaren bilaketa paraleloa egiten dugu zero_string funtzioa erabiliz string.find. Nahikoa da lehen zero byte aurkitzea.
Orain sartzen bada in_part horretarako datuak daude out_part kopiatu.
--]]
if #in_part >= start_index then
local end_index = start_index + #zero_string - 1
--[[
Moztu in_part zeroen segidari dagokion zatia.
--]]
local part = in_part:sub(start_index, end_index)
if (part:byte(1) ~= 0) or part:find("[^ ]") then
--[[
В part datuak daude.
--]]
if #part == #zero_string then
return part
else
--[[
part zero-segida bat baino txikiagoa izan da. Osa dezagun haiekin.
--]]
return part..zero_string:sub(1, end_index - #in_part)
end
end
end
end)
end
end
end
return out_part
end
Ondorioa
Horrela, fitxategi hau PC batean deskargatu eta muntatu ahal izan dugu. Fusioaren ostean, tabletetik torrent fitxategia atera nuen. Nire ordenagailuan torrent bezero bat instalatu nuen eta fitxategia egiaztatu nuen.
Tabletan deskargatutako azken zatia banaketan utz daiteke, baina hau baino lehen zatiak berriro egiaztatzea gaitu eta fitxategia desmarkatu behar duzu berriro deskargatu ez dadin.