Nyob zoo, cov phooj ywg. Zoo nkauj ntawm kuv cov servers sib ntaus sib tua
Cov phooj ywg hais kom kuv teeb tsa kev loj hlob ua liaj ua teb rau lawv, thiab tsis txhob rub lawv kuv cov qauv tshwj xeeb, Kuv nco qab txog qhov project nthuav.
Tau kawg, ua ntej khawb rau hauv qhov chaw, kuv saib qhov twg Chrome rub cov zip archive generated nrog configs, thiab muaj qhov chaw nyob pib nrog "blob:" tau tos kuv, oops. Nws twb tau paub meej tias qhov kev pabcuam tsis tsim ib yam dab tsi ntawm txoj kev, qhov tseeb, nws yog tag nrho ua tiav los ntawm js. Qhov tseeb, zip archive yog tsim los ntawm tus neeg siv khoom, browser, thiab javascript nws tus kheej. Cov. qhov kev zoo nkauj yog qhov project
Tom qab forking qhov project, kuv pib xav txog qhov kuv xaiv yog dab tsi. Cov hauj lwm nyuaj los ntawm qhov tseeb tias kuv tsis xav kom deviate los ntawm cov xwm txheej uas qhov project yuav tsum nyob twj ywm ib tug ntshiab pem hauv ntej-kawg, tsis muaj back-end. Tau kawg, qhov kev daws teeb meem yooj yim tshaj plaws yuav yog rub nodejs thiab yuam nws los tsim cov ntaub ntawv nrog configs siv cov kev sib txuas ncaj qha.
Qhov tseeb, tsis muaj ntau txoj kev xaiv. Ntau precisely, tsuas yog ib tug tuaj rau lub siab. Peb yuav tsum teeb tsa cov kev teeb tsa thiab tau txais qhov txuas uas peb tuaj yeem luam tawm mus rau lub server console kom tau txais zip archive.
Ob peb cov ntawv nyeem nyob rau hauv qhov tshwm sim zip archive hnyav me ntsis, cia li ob peb kilobytes. Qhov kev daws teeb meem yog kom tau txais txoj hlua base64 los ntawm cov zip archive generated thiab muab pov rau hauv qhov tsis, thaum nyob rau hauv lub server nrog cov lus txib hauv console.
echo 'base64string' | base64 --decode > config.zip
peb tuaj yeem tsim cov ntaub ntawv zip tib yam.
Hauv cov peev txheej peb pom ib txoj hauv kev tsim cov zip archive:
$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',
});
};
txhua yam yog yooj yim heev, siv lub tsev qiv ntawv
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
qhov twg cov ntsiab lus yog qhov tshwm sim blob khoom ntawm zip archive.
Ok, txhua yam kuv yuav tsum tau ua yog ntxiv lwm lub pob ntawm nws thiab thaum kuv nyem rau ntawm nws, kuv yuav tsis khaws cov zip archive uas tau tshwm sim rau qhov browser, tab sis tau txais tus lej base64 los ntawm nws. Tom qab fiddling ib ncig ntawm me ntsis, Kuv tau txais 2 txoj kev, tsis yog ib qho downloadZip:
$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',
});
};
Raws li koj tuaj yeem pom, Kuv tau hloov lub cim ntawm zip archive nws tus kheej mus rau tus kheej generateZip txoj kev, thiab lwm yam. Qhov no yog AngularJS, thiab tus sau nws tus kheej lo rau callbacks thiab tsis ua raws li cov lus cog tseg. downloadZip tseem ua saveAs raws li qhov tso zis, thaum downloadBase64 tau ua qee yam txawv me ntsis. Peb tsim cov khoom FileReader uas tuaj rau peb hauv html5 thiab twb heev
position: absolute;
z-index: -1;
opacity: 0;
uas tso cai rau kuv mus nkaum lub caij los ntawm saib thiab ua tau tawm ntawm nplooj ntawv. Voila, txoj haujlwm tiav, thaum kuv nyem rau ntawm kuv lub pob, ib kab zoo li no tau muab tso rau hauv qhov tsis:
echo 'base64string' | base64 --decode > config.zip
uas kuv tsuas pasted rau hauv lub console ntawm lub server thiab tam sim ntawd tau txais ib tug zip archive nrog tag nrho cov configs.
Thiab, ntawm chav kawm, kuv xa ib daim ntawv thov rub mus rau tus sau, vim ... qhov project yog nquag thiab cus ciav, Kuv xav pom cov tshiab los ntawm tus sau thiab muaj kuv tus kheej khawm) Rau cov neeg nyiam, ntawm no nws yog
Zoo siab rau kev txhim kho txhua tus)
Tau qhov twg los: www.hab.com