Node.JS
NodeJS Dosya Sıkıştırma
Herkese merhabalar, NodeJS derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde dosya sıkıştırmayı anlatacağım. Hadi başlayalım !
NodeJS iel dosya sıkıştırma yapabilmemiz için tabiki öncelikle NodeJS projesi oluşturmamız gerekiyor. Proje oluşturmak için terminal (Windows için CMD) ile proje oluşturmak istediğimiz klasöre geçerek
Ardından proje ana dizinimizde index.js adında bir tane Javascript dosyası oluşturalım ve bu dosyayı açarak kod yazmaya başlayalım.
NodeJS ile dosya sıkıştırmak için compressing paketini kullanacağız ve bu paket ile tar, gzip, tgz ve zip formatında sıkıştırma yapabiliyoruz. Ben sadece zip sıkıştırmayı anlatacağım fakat tar, tgz ve gzip sıkıştırmalar da aynı şekilde yapılabiliyor.
compressing paketini kurmak için terminali açarak
Bu paket ile sıkıştırma yapmak için iki farklı kullanımı mevcut. Birincisi paket üzerindeki static sınıf ve fonksiyonlara doğrudan erişim yaparak sıkıştırma. İkincisi stream nesneleri kullanarak sıkıştırma.
İlk olarak static sınıf ve fonksiyonlar ile sıkıştırma yapmak için şu şekilde bir yol izlememiz gerekecek;
Örneğin masaüstünde bulunan veriler.json dosyasını stream kullanarak zip olarak sıkıştıralım;
Evet compressing paketi ile dosya ve klasör sıkıştırma işlemi bu şekilde yapılmakta. Yazmış olduğumuz kodları daha açıklayıcı ve toplu olması için aşağıya bırakıyorum;
NodeJS iel dosya sıkıştırma yapabilmemiz için tabiki öncelikle NodeJS projesi oluşturmamız gerekiyor. Proje oluşturmak için terminal (Windows için CMD) ile proje oluşturmak istediğimiz klasöre geçerek
npm init --yeskomutunu girelim ve NodeJS projesinin oluşturulmasını bekleyelim.
Ardından proje ana dizinimizde index.js adında bir tane Javascript dosyası oluşturalım ve bu dosyayı açarak kod yazmaya başlayalım.
NodeJS ile dosya sıkıştırmak için compressing paketini kullanacağız ve bu paket ile tar, gzip, tgz ve zip formatında sıkıştırma yapabiliyoruz. Ben sadece zip sıkıştırmayı anlatacağım fakat tar, tgz ve gzip sıkıştırmalar da aynı şekilde yapılabiliyor.
compressing paketini kurmak için terminali açarak
npm i compressingkomutunu girelim ve NPM’in compressing paketini indirerek projeye eklemesini bekleyelim. İşlemin tamamlanmasının ardından index.js dosyasında bu paketi çağırmamız gerektiği için dosya başına
const compressing = require('compressing');kod satırını yazalım. Artık sıkıştırma işlemini yapmak için herşey hazır 🙂
Bu paket ile sıkıştırma yapmak için iki farklı kullanımı mevcut. Birincisi paket üzerindeki static sınıf ve fonksiyonlara doğrudan erişim yaparak sıkıştırma. İkincisi stream nesneleri kullanarak sıkıştırma.
İlk olarak static sınıf ve fonksiyonlar ile sıkıştırma yapmak için şu şekilde bir yol izlememiz gerekecek;
- compressing paketi altındaki sıkıştırma yöntemleri için oluşturulmuş namespacelere ulaşmak,
- Stream ile sıkıştırma için,
- stream nesnesi ile sıkıştırılacak dosyayı streame yüklemek,
- stream üzerinde bulunan veriyi hedef dosyaya yazmak,
- Statik nesneler ile yapmak için;
- doğrudan sıkıştırma fonksiyonuna giderek sıkıştırma işlemini tamamlamak.
Örneğin masaüstünde bulunan veriler.json dosyasını stream kullanarak zip olarak sıkıştıralım;
new compressing.zip.FileStream({ source: 'c:/users/kullanıcı/desktop/veriler.json' }).pipe(fs.createWriteStream('c:/users/kullanıcı/desktop/veriler.zip'));Aynı işlemi birde statik sınıflar ile yapalım;
compressing.zip.compressFile('c:/users/kullanıcı/desktop/veriler.json', 'c:/users/kullanıcı/desktop/veriler.zip');compressing sınıfı ile klasör sıkıştırmak için statik yöntemde compressFile() metodu yerine compressDir() metodunu kullanıyoruz ve geri kalan herşey aynı. Yani örneğin masaüstünde bulunan veriler adındaki klasörü yine masaüstüne veriler.zip olarak sıkıştıralım;
compressing.zip.compressDir('c:/users/kullanıcı/desktop/veriler', 'c:/users/kullanıcı/desktop/veriler.zip');Klasörleri stream yöntemiyle sıkıştırmak için ise
const stream = new compressing.zip.Stream(); stream.addEntry('c:/users/kullanıcı/desktop/veriler'); stream.pipe(fs.createWriteStream('c:/users/kullanıcı/desktop/veriler.zip'));Ben zip olarak örnek verdim fakat örneğin tar olarak sıkıştırmak için yazmış olduğum kodlarda zip geçen her yeri tar olarak değiştirirseniz tar olarakta sıkıştırma yapabileceksiniz.
Evet compressing paketi ile dosya ve klasör sıkıştırma işlemi bu şekilde yapılmakta. Yazmış olduğumuz kodları daha açıklayıcı ve toplu olması için aşağıya bırakıyorum;
const compressing = require('compressing'); const fs = require('fs'); // Stream ile dosya sıkıştırma new compressing.zip.FileStream({ source: 'c:/users/kullanıcı/desktop/veriler.json' }).pipe('c:/users/kullanıcı/desktop/veriler.zip'); // Stream ile klasör sıkıştırma const stream = new compressing.zip.Stream(); stream.addEntry('c:/users/kullanıcı/desktop/veriler'); stream.pipe(fs.createWriteStream('c:/users/kullanıcı/desktop/veriler.zip')); // Statik olarak dosya sıkıştırma compressing.zip.compressFile('c:/users/kullanıcı/desktop/veriler.json', 'c:/users/kullanıcı/desktop/veriler.zip'); // Statik olarak klasör sıkıştırma compressing.zip.compressDir('c:/users/kullanıcı/desktop/veriler', 'c:/users/kullanıcı/desktop/veriler.zip');Bir yazımızın daha sonuna geldik, tüm NodeJS derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.
Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]