1. ওভারভিউ
স্প্রিং ফ্রেমওয়ার্ক একটি ResourceLoader
বিমূর্ততা প্রদান করে যাতে ফাইল সিস্টেম, ক্লাসপাথ বা ওয়েবের মতো বিভিন্ন উত্স থেকে ফাইলগুলি সহজেই পড়তে এবং লিখতে পারে। আপনাকে শুধুমাত্র সুপরিচিত প্রোটোকল উপসর্গ ব্যবহার করে সংস্থানে URI নির্দিষ্ট করতে হবে। উদাহরণস্বরূপ, স্থানীয় ফাইল সিস্টেমে একটি ফাইল অ্যাক্সেস করতে, আপনি file:/data/config.yaml
এর মতো একটি URI উল্লেখ করবেন।
আপনি একটি স্প্রিং বুট অ্যাপ লিখবেন যা স্প্রিং রিসোর্স অ্যাবস্ট্রাকশন এবং gs:
প্রোটোকল উপসর্গ ব্যবহার করে ক্লাউড স্টোরেজে সঞ্চিত ফাইলগুলি অ্যাক্সেস করবে।
আপনি ক্লাউড শেল এবং ক্লাউড SDK gcloud কমান্ড-লাইন টুল ব্যবহার করে এটি করবেন।
আপনি কি শিখবেন
- ক্লাউড স্টোরেজ স্প্রিং বুট স্টার্টার কীভাবে ব্যবহার করবেন
- বসন্তের সাথে ক্লাউড স্টোরেজে ফাইলগুলি কীভাবে অ্যাক্সেস করবেন
- স্প্রিং এর
Resource
এবংWritableResource
বিমূর্ততা কিভাবে ব্যবহার করবেন
আপনি কি প্রয়োজন হবে
- একটি Google ক্লাউড প্রকল্প
- একটি ব্রাউজার, যেমন Google Chrome
- স্ট্যান্ডার্ড লিনাক্স টেক্সট এডিটর, যেমন Vim, Emacs, এবং GNU Nano এর সাথে পরিচিতি
আপনি কিভাবে কোডল্যাব ব্যবহার করবেন?
এইচটিএমএল এবং সিএসএস ওয়েব অ্যাপ তৈরি করার ক্ষেত্রে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?
আপনি Google ক্লাউড পরিষেবাগুলি ব্যবহার করার সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ (যদি আপনার ইতিমধ্যেই একটি Gmail বা G Suite অ্যাকাউন্ট না থাকে তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)
প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID
হিসাবে উল্লেখ করা হবে।
- এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷
এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। "ক্লিনিং আপ" বিভাগে যে কোনও নির্দেশাবলী অনুসরণ করতে ভুলবেন না যা আপনাকে কীভাবে সংস্থানগুলি বন্ধ করতে হবে তা পরামর্শ দেয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন৷ Google ক্লাউডের নতুন ব্যবহারকারীরা $300USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
মেঘের শেল
আপনি Cloud Shell ব্যবহার করবেন, Google ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ।
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন .
আপনি যদি আগে কখনও ক্লাউড শেল শুরু না করে থাকেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রীন (ভাঁজের নীচে) উপস্থাপন করা হবে যা বর্ণনা করে। যদি এটি হয়, তবে চালিয়ে যান ক্লিক করুন (এবং আপনি এটি আর কখনও দেখতে পাবেন না)। এককালীন স্ক্রীনটি দেখতে কেমন তা এখানে রয়েছে:
ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷
এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, শুধুমাত্র একটি ব্রাউজার বা আপনার Chromebook দিয়ে করা যেতে পারে।
একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণ করেছেন এবং প্রকল্পটি ইতিমধ্যে আপনার প্রকল্প আইডিতে সেট করা আছে।
- আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list
কমান্ড আউটপুট
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud config list project
কমান্ড আউটপুট
[core] project = <PROJECT_ID>
যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:
gcloud config set project <PROJECT_ID>
কমান্ড আউটপুট
Updated property [core/project].
3. ক্লাউড স্টোরেজে একটি ফাইল তৈরি করুন
ক্লাউড শেল চালু হওয়ার পরে, আপনি ফাইল তৈরি করা এবং সেগুলিকে ক্লাউড স্টোরেজে স্থানান্তর করা শুরু করতে পারেন।
my-file.txt
নামে একটি ফাইল তৈরি করুন:
$ echo "Hello World from GCS" > my-file.txt
তারপরে ক্লাউড স্টোরেজে একটি নতুন অনন্য বালতি তৈরি করুন এবং সেখানে gsutil
ব্যবহার করে ফাইলটি স্থানান্তর করুন।
$ BUCKET=spring-bucket-$USER $ gsutil makebucket gs://$BUCKET $ gsutil copy my-file.txt gs://$BUCKET
ক্লাউড স্টোরেজের স্টোরেজ ব্রাউজারে নেভিগেট করুন এবং বালতি এবং ফাইল সেখানে আছে কিনা তা যাচাই করুন।
4. একটি স্প্রিং বুট অ্যাপ চালু করুন
স্প্রিং ইনিশিয়ালাইজারের সাথে একটি নতুন স্প্রিং বুট অ্যাপ তৈরি করতে কমান্ড লাইন ব্যবহার করে অ্যাপটি লেখা শুরু করুন:
$ curl https://start.spring.io/starter.tgz \ -d type=maven-project \ -d dependencies=web,cloud-gcp-storage -d baseDir=spring-gcs | tar -xzvf -
মনে রাখবেন যে Initializr স্বয়ংক্রিয়ভাবে টেমপ্লেট অ্যাপের pom.xml
এ আপনার নির্ভরতাগুলিতে spring-boot-starter-web
এবং spring-cloud-gcp-starter-storage
যোগ করবে।
টেমপ্লেট অ্যাপের ডিরেক্টরিতে পরিবর্তন করুন:
$ cd spring-gcs
নিশ্চিত করুন যে JAVA_HOME
সঠিক JDK সংস্করণে সেট করা আছে:
$ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
Maven ব্যবহার করে অ্যাপটি তৈরি করুন এবং চালান।
$ ./mvnw spring-boot:run
অ্যাপটি পোর্ট 8080 এ শোনা শুরু করবে। একটি নতুন ক্লাউড শেল ট্যাব খুলুন এবং অ্যাপটি অ্যাক্সেস করতে curl
চালান।
$ curl localhost:8080
আপনার একটি 404 প্রতিক্রিয়া পাওয়া উচিত কারণ অ্যাপটি এখনও কার্যকর কিছু করে না।
পূর্ববর্তী ক্লাউড শেল ট্যাবে ফিরে যান যেখানে অ্যাপটি চলছে এবং এটিকে Control+C
(ম্যাকিন্টোশে Command+C
) দিয়ে মেরে ফেলুন।
5. ক্লাউড স্টোরেজে ফাইলটি পড়ুন
my-file.txt
অ্যাক্সেস করতে আপনার স্প্রিং বুট অ্যাপটি পরিবর্তন করুন, যে ফাইলটি আপনি আগে ক্লাউড স্টোরেজে সংরক্ষণ করেছিলেন৷ আপনার লক্ষ্য হল HTTP এর মাধ্যমে ফাইলের বিষয়বস্তু ফেরত দেওয়া।
নিম্নলিখিত নির্দেশাবলীতে, আপনি ফাইলগুলি সম্পাদনা করতে Vim ব্যবহার করবেন, তবে আপনি Emacs, GNU Nano বা ক্লাউড শেলের অন্তর্নির্মিত কোড সম্পাদকও ব্যবহার করতে পারেন:
$ cd ~/spring-gcs
অ্যাপে একটি REST কন্ট্রোলার GcsController
যোগ করুন।
$ vi src/main/java/com/example/demo/GcsController.java
নিম্নলিখিত কোডটি পেস্ট করুন, এবং আপনার পূর্বে তৈরি করা বালতি দিয়ে সংস্থান URI ঠিক করতে ভুলবেন না। আপনি echo $BUCKET
কমান্ড চালিয়ে বালতি পরীক্ষা করতে পারেন।
src/main/java/com/example/demo/GcsController.java
package com.example.demo;
import java.io.IOException;
import java.nio.charset.Charset;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.util.StreamUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GcsController {
@Value("gs://REPLACE_WITH_YOUR_BUCKET/my-file.txt")
private Resource gcsFile;
@GetMapping("/")
public String readGcsFile() throws IOException {
return StreamUtils.copyToString(
gcsFile.getInputStream(),
Charset.defaultCharset());
}
}
Maven এর সাথে অ্যাপটি তৈরি করুন এবং চালান:
$ ./mvnw spring-boot:run
অ্যাপটি পোর্ট 8080 এ শোনা শুরু করে। একটি নতুন ক্লাউড শেল ট্যাব খুলুন এবং অ্যাপটি অ্যাক্সেস করতে curl
চালান।
$ curl localhost:8080
আপনার এখন দেখতে হবে যে ফাইলের বিষয়বস্তু অ্যাপ থেকে ফিরে এসেছে। পূর্ববর্তী ক্লাউড শেল ট্যাবে যান যেখানে অ্যাপটি চলছে এবং এটিকে Control+C
(ম্যাকিনটোশে Command+C
) দিয়ে মেরে ফেলুন।
6. ক্লাউড স্টোরেজে ফাইলটিতে লিখুন
আপনি ক্লাউড স্টোরেজে ফাইলের বিষয়বস্তু পড়েছেন এবং এটি একটি স্প্রিং REST কন্ট্রোলারের মাধ্যমে প্রকাশ করেছেন। এখন, একই HTTP এন্ডপয়েন্টে নতুন ফাইলের বিষয়বস্তু পোস্ট করে ফাইলের বিষয়বস্তু পরিবর্তন করুন।
আপনাকে GcsController
এ আরেকটি পদ্ধতি যোগ করতে হবে যা HTTP POST-এ সাড়া দেবে এবং ক্লাউড স্টোরেজে আপনার ফাইলে ডেটা লিখবে। এইবার, স্প্রিং Resource
WritableResource
এ কাস্ট করুন।
আপনার প্রয়োজনীয় অতিরিক্ত আমদানি সহ GcsController
আপডেট করুন।
src/main/java/com/example/demo/GcsController.java
import java.io.OutputStream;
import org.springframework.core.io.WritableResource;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.PostMapping;
কন্ট্রোলারে নতুন এন্ডপয়েন্ট পদ্ধতি যোগ করুন।
src/main/java/com/example/demo/GcsController.java
@RestController
public class GcsController {
@PostMapping("/")
String writeGcs(@RequestBody String data) throws IOException {
try (OutputStream os = ((WritableResource) gcsFile).getOutputStream()) {
os.write(data.getBytes());
}
return "file was updated\n";
}
...
}
Maven এর সাথে অ্যাপটি তৈরি করুন এবং চালান:
$ ./mvnw spring-boot:run
অ্যাপটি পোর্ট 8080 এ শোনা শুরু করে। একটি নতুন ক্লাউড শেল ট্যাব খুলুন এবং অ্যাপে একটি বার্তা পোস্ট করতে curl
চালান।
$ curl -d 'new message' -H 'Content-Type: text/plain' localhost:8080
আপনি একটি নিশ্চিতকরণ দেখতে হবে যে ফাইলের বিষয়বস্তু আপডেট করা হয়েছে। যাইহোক, একটি GET
করে তা যাচাই করুন।
$ curl localhost:8080
আপনি অ্যাপ থেকে ফিরে আসা ফাইলের আপডেট বিষয়বস্তু দেখতে হবে. পূর্ববর্তী ক্লাউড শেল ট্যাবে ফিরে যান যেখানে অ্যাপটি চলছে এবং এটিকে Control+C
(ম্যাকিন্টোশে Command+C
) দিয়ে মেরে ফেলুন।
7. অভিনন্দন!
আপনি ক্লাউড স্টোরেজে সহজেই ফাইল অ্যাক্সেস করতে স্প্রিং রিসোর্স অ্যাবস্ট্রাকশন ব্যবহার করতে শিখেছেন। আপনি একটি স্প্রিং বুট ওয়েব অ্যাপ লিখেছেন যা ক্লাউড স্টোরেজের একটি ফাইল পড়তে এবং লিখতে পারে। আপনি ক্লাউড স্টোরেজের জন্য স্প্রিং বুট স্টার্টার সম্পর্কেও শিখেছেন যা সেই কার্যকারিতা সক্ষম করে।
আরও জানুন
- ক্লাউড স্টোরেজ
- গুগল ক্লাউডে স্প্রিং ফ্রেমওয়ার্ক
- Google Cloud GitHub সংগ্রহস্থলে বসন্ত
- গুগল ক্লাউডে জাভা
লাইসেন্স
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।