File Buffer এবং Streaming

ফাইল আপলোড এবং ডাউনলোড - ভাডিন (Vaadin) - Web Development

298

Vaadin অ্যাপ্লিকেশনগুলিতে File Buffer এবং Streaming ব্যবহারের মাধ্যমে আপনি ফাইল আপলোড, ডাউনলোড এবং স্টোরেজ সিস্টেম পরিচালনা করতে পারেন। এটি খুবই গুরুত্বপূর্ণ যখন আপনি বড় সাইজের ফাইল পরিচালনা করছেন অথবা ইউজারের ফাইলগুলি স্ট্রিমিংয়ের মাধ্যমে দ্রুত প্রসেস করতে চান। Vaadin ফ্রেমওয়ার্কে সহজে FileBuffer এবং Streaming এর মাধ্যমে ফাইল ম্যানেজমেন্ট করা সম্ভব।

FileBuffer কী?


FileBuffer হল একটি ক্লাস যা ফাইল আপলোড করার সময় ফাইল ডেটা সাময়িকভাবে রক্ষিত রাখে। এটি ফাইলের কনটেন্টকে মেমরিতে রক্ষা করে এবং ব্যবহারকারী যখন ফাইলটি আপলোড করে, তখন সেটা আপনার সার্ভারে পাঠানোর জন্য প্রস্তুত হয়। FileBuffer সাধারণত ব্যবহার করা হয় ছোট বা মাঝারি সাইজের ফাইলগুলো পরিচালনা করতে।

Vaadin এ FileBuffer ব্যবহার করা


Vaadin এ FileBuffer এবং Upload কম্পোনেন্ট ব্যবহার করে ফাইল আপলোড করার প্রক্রিয়া খুবই সহজ। এখানে একটি উদাহরণ দেওয়া হলো:

import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.upload.Upload;
import com.vaadin.flow.component.upload.receivers.FileBuffer;
import com.vaadin.flow.component.upload.UploadI;
import com.vaadin.flow.component.notification.Notification;

public class FileUploadView extends VerticalLayout {
    public FileUploadView() {
        FileBuffer fileBuffer = new FileBuffer();  // FileBuffer তৈরি করা
        Upload upload = new Upload(fileBuffer);  // Upload কম্পোনেন্ট তৈরি করা
        
        // ফাইল আপলোডের পর কী ঘটবে তা নির্ধারণ করা
        upload.addSucceededListener(event -> {
            // ফাইল সফলভাবে আপলোড হলে, ইউজারকে জানান
            Notification.show("File uploaded: " + event.getFileName());
        });
        
        add(upload);  // Upload কম্পোনেন্টটিকে UI তে যোগ করা
    }
}

এখানে:

  • FileBuffer ব্যবহার করা হয়েছে, যা ফাইল ডেটাকে মেমরিতে রাখে।
  • Upload কম্পোনেন্টের মাধ্যমে ফাইল আপলোড করার প্রক্রিয়া সহজে সম্পন্ন করা হয়।
  • addSucceededListener ব্যবহার করে ফাইল আপলোডের পর ইউজারকে একটি নোটিফিকেশন দেখানো হচ্ছে।

Streaming (স্ট্রিমিং) কী?


Streaming হল এমন একটি প্রক্রিয়া, যার মাধ্যমে আপনি বড় সাইজের ফাইলের ডেটা সরাসরি পাঠাতে পারেন বা গ্রহণ করতে পারেন, এতে মেমরি ব্যবস্থাপনা আরও দক্ষ হয়। ফাইল স্ট্রিমিংয়ের মাধ্যমে আপনি ফাইলটির কিছু অংশ একে একে পাঠাতে বা গ্রহণ করতে পারেন, যার ফলে বড় ফাইলের ক্ষেত্রে দ্রুত কাজ হয় এবং মেমরি ব্যবহারের পরিমাণ কম হয়।

Vaadin এ ফাইল স্ট্রিমিংয়ের মাধ্যমে ফাইল ডাউনলোড বা আপলোড করার সময় InputStream এবং OutputStream ব্যবহার করা হয়।

Vaadin এ File Streaming


Vaadin এ ফাইল স্ট্রিমিং করার জন্য, আপনি ByteArrayResource বা StreamResource ব্যবহার করতে পারেন, যা আপনাকে ফাইলের স্ট্রিমিংয়ের মাধ্যমে ডাউনলোড বা আপলোড পরিচালনা করতে সাহায্য করে।

1. File Download Streaming

import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.core.StreamResource;
import com.vaadin.flow.component.attachment.DownloadStream;

public class FileDownloadView extends VerticalLayout {
    public FileDownloadView() {
        Button downloadButton = new Button("Download File");

        // File stream resource তৈরি করা
        StreamResource resource = new StreamResource("sample.txt", 
            () -> getClass().getResourceAsStream("/files/sample.txt"));

        // Button ক্লিক করলে ফাইল ডাউনলোড করা হবে
        downloadButton.addClickListener(e -> {
            FileDownloadUtil.open(resource);  // স্ট্রিম রিসোর্স ব্যবহার করে ফাইল ডাউনলোড
        });

        add(downloadButton);
    }
}

এখানে:

  • StreamResource ব্যবহার করে ফাইল স্ট্রিমিং করা হচ্ছে।
  • getClass().getResourceAsStream("/files/sample.txt") দ্বারা ফাইলের স্ট্রিম রিসোর্স তৈরি করা হচ্ছে।

2. File Upload Streaming

import com.vaadin.flow.component.upload.Upload;
import com.vaadin.flow.component.upload.receivers.MultiFileReceiver;
import com.vaadin.flow.component.notification.Notification;
import java.io.InputStream;

public class FileUploadStreamingView extends VerticalLayout {

    public FileUploadStreamingView() {
        MultiFileReceiver receiver = new MultiFileReceiver() {
            @Override
            public OutputStream receiveUpload(String fileName, String mimeType) {
                // স্ট্রিমিংয়ের মাধ্যমে ফাইল রিসিভ করা
                try {
                    return new FileOutputStream("uploaded/" + fileName);
                } catch (IOException e) {
                    Notification.show("Error uploading file: " + e.getMessage());
                }
                return null;
            }
        };

        Upload upload = new Upload(receiver);
        upload.addSucceededListener(event -> {
            Notification.show("File uploaded successfully: " + event.getFileName());
        });

        add(upload);
    }
}

এখানে:

  • MultiFileReceiver ইন্টারফেস ব্যবহার করে আপলোড করা ফাইলটি স্ট্রিমিংয়ের মাধ্যমে গ্রহণ করা হচ্ছে।
  • receiveUpload() মেথডে স্ট্রিম তৈরি করে ফাইলের ডেটা সরাসরি স্টোর করা হচ্ছে।

File Buffer এবং Streaming এর মধ্যে পার্থক্য


বৈশিষ্ট্যFileBufferFile Streaming
ব্যবহারছোট বা মাঝারি সাইজের ফাইল আপলোড/ডাউনলোডবড় সাইজের ফাইলের স্ট্রিমিং
মেমরি ব্যবস্থাপনামেমরিতে ফাইলের সব ডেটা একসাথে সঞ্চিত থাকেফাইলের ডেটা একে একে স্ট্রিম হয়
ফাইল সাইজছোট সাইজের ফাইলের জন্য উপযুক্তবড় সাইজের ফাইলের জন্য উপযুক্ত
ফাইল পদ্ধতিFileBufferUpload কম্পোনেন্টStreamResource, MultiFileReceiver

সারাংশ


Vaadin-এ File Buffer এবং Streaming ফিচার ব্যবহারের মাধ্যমে আপনি ফাইল আপলোড, ডাউনলোড এবং ম্যানেজমেন্ট খুব সহজে করতে পারেন। FileBuffer ছোট বা মাঝারি সাইজের ফাইল আপলোড করার জন্য ব্যবহৃত হয়, যেখানে ডেটা মেমরিতে ধারণ করা হয়। আর File Streaming বড় সাইজের ফাইলের জন্য উপযুক্ত, যেখানে ডেটা একে একে স্ট্রিম করা হয়, যাতে মেমরি ব্যবস্থাপনা আরও দক্ষ হয়। Vaadin আপনাকে এই দুই পদ্ধতির মাধ্যমে ফাইল ম্যানেজমেন্টের সহজ এবং দক্ষ উপায় প্রদান করে।

Content added By
Promotion

Are you sure to start over?

Loading...