मैं स्काला में एक प्ले फ्रेमवर्क आवेदन के निर्माण कर रहा हूँ करने के लिए डेटा स्ट्रीम करने के लिए जहाँ मैं S3 बाइट्स की एक सरणी स्ट्रीम करने के लिए करना चाहते हैं। मैं ऐसा करने के लिए Play-S3 लाइब्रेरी का उपयोग कर रहा हूं। प्रलेखन अनुभाग के "मल्टीपार्ट फाइल अपलोड" क्या यहाँ प्रासंगिक है:प्ले स्काला में Iteratees और ूगणकों का प्रयोग S3
// Retrieve an upload ticket
val result:Future[BucketFileUploadTicket] =
bucket initiateMultipartUpload BucketFile(fileName, mimeType)
// Upload the parts and save the tickets
val result:Future[BucketFilePartUploadTicket] =
bucket uploadPart (uploadTicket, BucketFilePart(partNumber, content))
// Complete the upload using both the upload ticket and the part upload tickets
val result:Future[Unit] =
bucket completeMultipartUpload (uploadTicket, partUploadTickets)
मैं अपने आवेदन में लेकिन Iteratee
और Enumerator
के साथ एक ही बात करने के लिए कोशिश कर रहा हूँ।
नदियों और asynchronicity बातें थोड़ा जटिल है, लेकिन यहाँ मैं अब तक (ध्यान दें uploadTicket
कोड में पहले परिभाषित किया गया है) क्या है:
val partNumberStream = Stream.iterate(1)(_ + 1).iterator
val partUploadTicketsIteratee = Iteratee.fold[Array[Byte], Future[Vector[BucketFilePartUploadTicket]]](Future.successful(Vector.empty[BucketFilePartUploadTicket])) { (partUploadTickets, bytes) =>
bucket.uploadPart(uploadTicket, BucketFilePart(partNumberStream.next(), bytes)).flatMap(partUploadTicket => partUploadTickets.map(_ :+ partUploadTicket))
}
(body |>>> partUploadTicketsIteratee).andThen {
case result =>
result.map(_.map(partUploadTickets => bucket.completeMultipartUpload(uploadTicket, partUploadTickets))) match {
case Success(x) => x.map(d => println("Success"))
case Failure(t) => throw t
}
}
सब कुछ संकलित करता है तथा घटना के बिना चलाता है। वास्तव में, "Success"
मुद्रित हो जाता है, लेकिन कोई फ़ाइल कभी भी S3 पर दिखाई नहीं देती है।
मेरे कोड के साथ हमेशा कई समस्याएं होती हैं। और क्या नया है? लेकिन यह निश्चित रूप से सच है कि सभी मामलों में भाग 5 एमबी नहीं हैं, इसलिए यह एक मुद्दा है। फिर भी, मैं आपके विचारों का प्रयास करूंगा और देख सकता हूं कि मैं क्या कर सकता हूं। – Vidya