Nginx рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдкреАрдврд╝реА, рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдЕрднрд┐рд╡рд╛рджрди, рд╕рд╛рдерд┐рдпреЛрдВред рдореЗрд░реЗ рдпреБрджреНрдз рд╕рд░реНрд╡рд░реЛрдВ рдкрд░, 2006 рд╕реЗ рд╕реБрдВрджрд░ рдирдЧреАрдиреЗ рдШреВрдо рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рд╢рд╛рд╕рди рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЙрдиреНрдлрд┐рдЧ рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЬрдорд╛ рдХрд┐рдП рд╣реИрдВред рдореИрдВрдиреЗ рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдХреА рдмрд╣реБрдд рдкреНрд░рд╢рдВрд╕рд╛ рдХреА рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╣реЗрдмреНрд░рд╛ рдкрд░ рднреА рдиреЗрдЧрдиреЗрдХреНрд╕ рд╣рдм рдиреЗ рдореБрдЭреЗ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, \ m /

рджреЛрд╕реНрддреЛрдВ рдиреЗ рдореБрдЭреЗ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд╛рд╕ рдлрд╛рд░реНрдо рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореБрдЭреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ nginxconfig.io рдпрд╛рдж рдЖрдпрд╛ , рдЬреЛ рд╕реНрдХреИрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ, рдЖрджрд┐ред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдХреНрдпреЛрдВ рдирд╣реАрдВ? рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдирд╛рд░рд╛рдЬ рдерд╛ рдХрд┐ nginxconfig рдореБрдЭреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдЬрд┐рдк рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рд╕реАрдзреЗ wget / fetch / curl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрд┐рд╕ рддрд░рд╣ рдХреА рдмрдХрд╡рд╛рд╕ рд╣реИ, рдореБрдЭреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдореБрдЭреЗ рдХрдВрд╕реЛрд▓ рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЧреБрд╕реНрд╕реЗ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╣рд┐рдореНрдордд рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд┐рддреБрдм рдкрд░ рдЪрдврд╝ рдЧрдпрд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХреЗ рдХрд╛рдВрдЯрд╛ рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрдиреБрд░реЛрдз рдХреЛ рдЦреАрдВрдЪреЗрдВред рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рдерд╛;)

рдЫрд╡рд┐

рдмреЗрд╢рдХ, рд╕реНрд░реЛрдд рдХреЛ рдЪреБрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рдХреНрд░реЛрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рдореИрдВ "рдмреВрдБрдж:", oppa рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрддреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реЗрд╡рд╛ рдХреБрдЫ рднреА рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЗрдПрд╕ рдпрд╣ рд╕рдм рдХрд░рддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдЬрд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡ рдХреНрд▓рд╛рдЗрдВрдЯ, рдмреНрд░рд╛рдЙрдЬрд░, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рд╣реА рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА рдЖрдХрд░реНрд╖рдг рдпрд╣ рд╣реИ рдХрд┐ nginxconfig.io рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ html рдкреГрд╖реНрда рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХреБрдЫ narod.ru рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛) рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдордЬреЗрджрд╛рд░ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рди рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ 2019 рдореЗрдВ nc ... рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ? рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реАрдзреЗ рдкрд░рд┐рдгрд╛рдореА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХрд╛рдВрдЯреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдпрд╣ рдХрд╛рд░реНрдп рдЗрд╕ рддрдереНрдп рд╕реЗ рдЬрдЯрд┐рд▓ рдерд╛ рдХрд┐ рдореИрдВ рдЗрд╕ рд╢рд░реНрдд рд╕реЗ рд╡рд┐рджрд╛ рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд┐рд╕реА рднреА рдмреИрдХ-рдПрдВрдб рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдЕрдВрдд-рдЫреЛрд░ рдмрдиреА рд░рд╣реЗред рдмреЗрд╢рдХ, рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдиреЛрдбреНрдЬ рдХреЛ рдЦреАрдВрдЪрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕реЗ рд╕реАрдзреЗ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдереЗред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдХреЗрд╡рд▓ рдПрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдЖрдпрд╛ред рд╣рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЬрд╝рд┐рдк рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХрдВрд╕реЛрд▓ рдкрд░ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдореА рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдХрдИ рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рдЬрди рдХрд╛рдлреА рдХрдо рдерд╛, рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯред рд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рдмреЗрд╕ рдЬрд┐рдк рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдмреЗрд╕ 64 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдмрдлрд░ рдореЗрдВ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛, рдЬрдмрдХрд┐ рдХрдВрд╕реЛрд▓ рдкрд░ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░
echo 'base64string' | base64 --decode > config.zip 
рд╣рдо рдЗрд╕реЗ рдмрд╣реБрдд рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

nginxconfig.io рдХреЛ AngularJS рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВ рдХрд▓реНрдкрдирд╛ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рд▓реЗрдЦрдХ рдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ js рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рддреЛ рдХреЛрдб рдХреА рдХреНрдпрд╛ рдХрд┐рд▓реЛрдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ VueJS рдкрд░ рдпрд╣ рд╕рдм рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рд╣рдо рдПрдХ рдЬрд╝рд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡ рдмрдирд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐ рджреЗрдЦрддреЗ рд╣реИрдВ:

 $scope.downloadZip = function() { var zip = new JSZip(); var sourceCodes = $window.document.querySelectorAll('main .file .code.source'); for (var i = 0; i < sourceCodes.length; i++) { var sourceCode = sourceCodes[i]; var name = sourceCode.dataset.filename; var content = sourceCode.children[0].children[0].innerText; if (!$scope.isSymlink() && name.match(/^sites-available\//)) { name = name.replace(/^sites-available\//, 'sites-enabled/'); } zip.file(name, content); if (name.match(/^sites-available\//)) { zip.file(name.replace(/^sites-available\//, 'sites-enabled/'), '../' + name, { unixPermissions: parseInt('120755', 8), }); } } zip.generateAsync({ type: 'blob', platform: 'UNIX', }).then(function(content) { saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip'); }); gtag('event', $scope.getDomains().join(','), { event_category: 'download_zip', }); }; 

рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, jszip рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП , рдПрдХ рдЬрд╝рд┐рдк рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, js рдЗрд╕реЗ FileSaver.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЦрд┐рд▓рд╛рддрд╛ рд╣реИ:

 saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip'); 

рдЬрд╣рд╛рдВ рд╕рд╛рдордЧреНрд░реА рдкрд░рд┐рдгрд╛рдореА рдмреВрдБрдж рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рд╡рд╕реНрддреБ рд╣реИред

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рдерд╛ рдХрд┐ рдЗрд╕рдХреЗ рдЖрдЧреЗ рдПрдХ рдФрд░ рдмрдЯрди рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЬрдм рдореИрдВ рдЗрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реВрдБ, рддреЛ рдкрд░рд┐рдгрд╛рдореА рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рди рд╕рд╣реЗрдЬреЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЖрдзрд╛рд░ 64 рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдереЛрдбрд╝реА рд╢рд░реНрдорд┐рдВрджрдЧреА рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрдХ рдбрд╛рдЙрдирд▓реЛрдбрдЬрд╝рд┐рдк рдХреЗ рдмрдЬрд╛рдп 2 рд╡рд┐рдзрд┐рдпрд╛рдБ рдорд┐рд▓реАрдВ:

 $scope.downloadZip = function() { generateZip(function (content) { saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip'); }); gtag('event', $scope.getDomains().join(','), { event_category: 'download_zip', }); }; $scope.downloadBase64 = function() { generateZip(function (content) { var reader = new FileReader(); reader.readAsDataURL(content); reader.onloadend = function() { var base64 = reader.result.replace(/^data:.+;base64,/, ''); //   base64     zip    base64  } }); gtag('event', $scope.getDomains().join(','), { event_category: 'download_base64', }); }; 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЬрд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡ рдХреА рдкреАрдврд╝реА рдХреЛ рдирд┐рдЬреА рдЬреЗрдирд┐рдЯрдЬрд╝рд┐рдк рд╡рд┐рдзрд┐ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рд╣реИ, рдареАрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рд╣реИ, рдФрд░ рд▓реЗрдЦрдХ рд╕реНрд╡рдпрдВ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╡рд╛рджреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдбрд╛рдЙрдирд▓реЛрдбрдЬрд╝рд┐рдк рдиреЗ рдЕрднреА рднреА рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдмрдЪрдд рдХреА рд╣реИ, рдЬрдмрдХрд┐ рдбрд╛рдЙрдирд▓реЛрдбрдмреЗрд╕ рдиреЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ред рд╣рдо рдПрдХ FileReader рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ html5 рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдпрд╛ рдерд╛ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЬреЛ, рдирд┐рдпрдд рд╕рдордп рдореЗрдВ, рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдмреВрдБрдж рд╕реЗ рдмреЗрд╕ 64 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреИрд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдпрд╣ рдПрдХ рдбрд╛рдЯрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ DataURL рдореЗрдВ рд╡рд╣реА рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдмрд┐рдВрдЧреЛ, рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдХреИрдЪ рдореЗрд░реЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрдм рдореИрдВрдиреЗ рдпрд╣ рд╕рдм рдПрдХ рдмрдлрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд▓реЗрдЦрдХ рдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдбрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдЪрдпрдирд┐рдд рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлреНрд▓реИрд╢ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдмреЗрд╕ 64 рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рддрддреНрд╡ рдореЗрдВ рд░рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛: рдХреЛрдИ рдирд╣реАрдВ; рд▓реЗрдХрд┐рди рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореИрдВ рдЗрд╕реЗ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдЪрдпрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрдЬрд╛рдп: рдХреЛрдИ рдирд╣реАрдВ; рдореИрдВрдиреЗ рдХрд┐рдпрд╛

 position: absolute; z-index: -1; opacity: 0; 

рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЕрдкрдиреА рдЖрдВрдЦреЛрдВ рд╕реЗ рддрддреНрд╡ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдкреГрд╖реНрда рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рд╡реЛрдЗрд▓рд╛, рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛, рддреЛ рдкреНрд░рдкрддреНрд░ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдмрдлрд░ рдореЗрдВ рд░рдЦреА рдЧрдИ рдереА:

 echo 'base64string' | base64 --decode > config.zip 

рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдмрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдбрд╛рд▓рд╛ рдФрд░ рддреБрд░рдВрдд рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред

рдареАрдХ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдореИрдВрдиреЗ рд▓реЗрдЦрдХ рдХреЛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдлреЗрдВрдХ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдХреНрд░рд┐рдп рдФрд░ рдЬреАрд╡рдВрдд рд╣реИ, рдореИрдВ рд▓реЗрдЦрдХ рд╕реЗ рдЕрдкрдбреЗрдЯ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░рд╛ рдЦреБрдж рдХрд╛ рдмрдЯрди рд╣реИ) рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдореЗрд░рд╛ рдХрд╛рдВрдЯрд╛ рд╣реИ рдФрд░ рдЦреБрдж рд╣реА рдЕрдиреБрд░реЛрдз рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ , рдЬрд╣рд╛рдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВрдиреЗ рдХреНрдпрд╛ рддрдп рдХрд┐рдпрд╛ / рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ред

рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╡рд┐рдХрд╛рд╕ :-)

Source: https://habr.com/ru/post/hi448522/


All Articles