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 এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | FileBuffer | File Streaming |
|---|---|---|
| ব্যবহার | ছোট বা মাঝারি সাইজের ফাইল আপলোড/ডাউনলোড | বড় সাইজের ফাইলের স্ট্রিমিং |
| মেমরি ব্যবস্থাপনা | মেমরিতে ফাইলের সব ডেটা একসাথে সঞ্চিত থাকে | ফাইলের ডেটা একে একে স্ট্রিম হয় |
| ফাইল সাইজ | ছোট সাইজের ফাইলের জন্য উপযুক্ত | বড় সাইজের ফাইলের জন্য উপযুক্ত |
| ফাইল পদ্ধতি | FileBuffer ও Upload কম্পোনেন্ট | StreamResource, MultiFileReceiver |
সারাংশ
Vaadin-এ File Buffer এবং Streaming ফিচার ব্যবহারের মাধ্যমে আপনি ফাইল আপলোড, ডাউনলোড এবং ম্যানেজমেন্ট খুব সহজে করতে পারেন। FileBuffer ছোট বা মাঝারি সাইজের ফাইল আপলোড করার জন্য ব্যবহৃত হয়, যেখানে ডেটা মেমরিতে ধারণ করা হয়। আর File Streaming বড় সাইজের ফাইলের জন্য উপযুক্ত, যেখানে ডেটা একে একে স্ট্রিম করা হয়, যাতে মেমরি ব্যবস্থাপনা আরও দক্ষ হয়। Vaadin আপনাকে এই দুই পদ্ধতির মাধ্যমে ফাইল ম্যানেজমেন্টের সহজ এবং দক্ষ উপায় প্রদান করে।
Read more