না আপনি একক ক্রিয়ায় URL টি পেতে পারবেন না তবে দুটি :)
প্রথমত, আপলোড করার আগে আপনাকে ফাইলটি সর্বজনীন করতে হতে পারে কারণ যে ইউআরএলটি যে কেউ অ্যাক্সেস করতে পারে তা পাওয়ার কোনও মানে হয় না। মাইকেল অ্যাস্ট্রেইকো যেমন পরামর্শ দিয়েছেন তেমন এসিএল সেট করে আপনি এটি করতে পারেন। আপনি কল করে getResourceUrl
অথবা রিসোর্স ইউআরএল পেতে পারেন getUrl
।
AmazonS3Client s3Client = (AmazonS3Client)AmazonS3ClientBuilder.defaultClient();
s3Client.putObject(new PutObjectRequest("your-bucket", "some-path/some-key.jpg", new File("somePath/someKey.jpg")).withCannedAcl(CannedAccessControlList.PublicRead))
s3Client.getResourceUrl("your-bucket", "some-path/some-key.jpg");
নোট 1:
এর মধ্যে পৃথক getResourceUrl
এবং getUrl
এটি হ'ল getResourceUrl ব্যর্থতা দেখা দিলে নালাগুলি ফিরে আসবে।
নোট 2:
getUrl
পদ্ধতিটি অ্যামাজনএস 3 ইন্টারফেসে সংজ্ঞায়িত করা হয়নি। আপনি যদি স্ট্যান্ডার্ড বিল্ডার ব্যবহার করেন তবে আপনাকে অবজেক্টটি অ্যামাজনএস 3 ক্লায়েন্টে ফেলে দিতে হবে।