Size: a a a

Scala User Group

2020 August 16

Ж

Жмака in Scala User Group
А то я к концу дня уже не соображаю)
источник

Y

Yevhen in Scala User Group
К теме TF, у меня был вопрос используется ли adt гдето кроме free monad подхода?
источник

GP

Grigory Pomadchin in Scala User Group
Жмака
Это как?
ну свой ExpressionEncoder определяешь; это не очень удобно правда и обычно не нужно, тем более для тестов
источник

Ж

Жмака in Scala User Group
Grigory Pomadchin
ну свой ExpressionEncoder определяешь; это не очень удобно правда и обычно не нужно, тем более для тестов
Спасибо!
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Yevhen
К теме TF, у меня был вопрос используется ли adt гдето кроме free monad подхода?
adt?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Используется в скале везде, чтобы написать вообще почти что-угодно
источник
2020 August 17

S

Sergey in Scala User Group
Всем привет
Пробую использовать Alpakka (akka-stream-alpakka-s3) для аплоада медиа файлов на AWS S3
Картинки приходят в пост реквесте (http4s) в request body (EntityBody[F])
Загоняю в инпут стрим, который загружаю альпаккой на S3.

Немного упрощенно:
def uploadToS3_example(req: Request[IO], attributes: Attributes) = {

   val bucketName = "bucketName"
   val key = "key"
   val contentType = ContentType.parse("image/jpeg").right.get
   val metaData = MetaHeaders(Map("Content-Type" -> "image/jpeg", "Cache-Control" -> "max-age = 3600"))
   val accessControlList = CannedAcl.PublicRead

   req.body
     .through(toInputStream)
     .evalMap(inputStream => IO(
       
       StreamConverters
         .fromInputStream(() => inputStream)
         .runWith(
           S3.multipartUpload(bucketName, key, contentType, metaData, accessControlList)
             .withAttributes(attributes)
         )

     ))
     .compile
     .drain
 }


Картинка на S3 успешно создается, но с размером 0 байт.
При этом точно такая же загрузка на S3 альпаккой инпут стрима, созданного из URL картинки выполняется без проблем.

Тип инпут стрима
для http4s - fs2.io.JavaInputOutputStream$$anon$1@23ce62b7
для URL - sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@119bc58a

Может в этом проблема? Альпакка не дружит с JavaInputOutputStream?
Или что-то не так делаю?

С aws sdk все работает.

Буду благодарен за идеи и подсказки
источник

AD

Apache DOG™ in Scala User Group
Sergey
Всем привет
Пробую использовать Alpakka (akka-stream-alpakka-s3) для аплоада медиа файлов на AWS S3
Картинки приходят в пост реквесте (http4s) в request body (EntityBody[F])
Загоняю в инпут стрим, который загружаю альпаккой на S3.

Немного упрощенно:
def uploadToS3_example(req: Request[IO], attributes: Attributes) = {

   val bucketName = "bucketName"
   val key = "key"
   val contentType = ContentType.parse("image/jpeg").right.get
   val metaData = MetaHeaders(Map("Content-Type" -> "image/jpeg", "Cache-Control" -> "max-age = 3600"))
   val accessControlList = CannedAcl.PublicRead

   req.body
     .through(toInputStream)
     .evalMap(inputStream => IO(
       
       StreamConverters
         .fromInputStream(() => inputStream)
         .runWith(
           S3.multipartUpload(bucketName, key, contentType, metaData, accessControlList)
             .withAttributes(attributes)
         )

     ))
     .compile
     .drain
 }


Картинка на S3 успешно создается, но с размером 0 байт.
При этом точно такая же загрузка на S3 альпаккой инпут стрима, созданного из URL картинки выполняется без проблем.

Тип инпут стрима
для http4s - fs2.io.JavaInputOutputStream$$anon$1@23ce62b7
для URL - sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@119bc58a

Может в этом проблема? Альпакка не дружит с JavaInputOutputStream?
Или что-то не так делаю?

С aws sdk все работает.

Буду благодарен за идеи и подсказки
Во первых scastie, во вторых во всех альпакках много преколов
источник

VG

Vladislav Golub in Scala User Group
Apache DOG™
Во первых scastie, во вторых во всех альпакках много преколов
В-третих, вводные слова пишутся через дефис и с запятыми. К чему эта токсичность?
источник

GP

Grigory Pomadchin in Scala User Group
Vladislav Golub
В-третих, вводные слова пишутся через дефис и с запятыми. К чему эта токсичность?
Мож у него существительные с предлогом :д
источник

AD

Apache DOG™ in Scala User Group
Vladislav Golub
В-третих, вводные слова пишутся через дефис и с запятыми. К чему эта токсичность?
какая токсичность, вы ничего не перепутали?
источник

SA

Sergey Alaev in Scala User Group
Уровень токсичности отдельных людей в этом чатике легко определяется по количеству греческих букв в нике.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Sergey Alaev
Уровень токсичности отдельных людей в этом чатике легко определяется по количеству греческих букв в нике.
Эх, хорошо, что у меня только латинские
источник

Oℕ

Oleg ℕizhnik in Scala User Group
@alexknvl @oli_kitty  @wolfodav перестаньте токсить уже, неприятно
источник

λ

λoλdog in Scala User Group
Эх, хорошо у меня нет ника
источник

VS

Vladimir Sam in Scala User Group
Sergey
Всем привет
Пробую использовать Alpakka (akka-stream-alpakka-s3) для аплоада медиа файлов на AWS S3
Картинки приходят в пост реквесте (http4s) в request body (EntityBody[F])
Загоняю в инпут стрим, который загружаю альпаккой на S3.

Немного упрощенно:
def uploadToS3_example(req: Request[IO], attributes: Attributes) = {

   val bucketName = "bucketName"
   val key = "key"
   val contentType = ContentType.parse("image/jpeg").right.get
   val metaData = MetaHeaders(Map("Content-Type" -> "image/jpeg", "Cache-Control" -> "max-age = 3600"))
   val accessControlList = CannedAcl.PublicRead

   req.body
     .through(toInputStream)
     .evalMap(inputStream => IO(
       
       StreamConverters
         .fromInputStream(() => inputStream)
         .runWith(
           S3.multipartUpload(bucketName, key, contentType, metaData, accessControlList)
             .withAttributes(attributes)
         )

     ))
     .compile
     .drain
 }


Картинка на S3 успешно создается, но с размером 0 байт.
При этом точно такая же загрузка на S3 альпаккой инпут стрима, созданного из URL картинки выполняется без проблем.

Тип инпут стрима
для http4s - fs2.io.JavaInputOutputStream$$anon$1@23ce62b7
для URL - sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@119bc58a

Может в этом проблема? Альпакка не дружит с JavaInputOutputStream?
Или что-то не так делаю?

С aws sdk все работает.

Буду благодарен за идеи и подсказки
там надо внимательно посмотреть, что input stream правильно собран, по факту он у них может быть использован ровно один раз, после чего превращается в тыкву, причем тыква хитрая, она тупо возвращает 0 байт (мутабельные говномодели вместо эффектных конструкций ftw)
источник

S

Sergey in Scala User Group
Vladimir Sam
там надо внимательно посмотреть, что input stream правильно собран, по факту он у них может быть использован ровно один раз, после чего превращается в тыкву, причем тыква хитрая, она тупо возвращает 0 байт (мутабельные говномодели вместо эффектных конструкций ftw)
спасибо за конструктив
да, тыква там хитрая)
источник

N

Nikita🌈🦄🌈🇺🇦🇨🇦... in Scala User Group
привет, ковыряюсь сейчас в ZIO. Есть такой вопрос:
у меня есть несколько вызовов функций, которые я засунул в эффект и просто вызываю их последовательно. Любая из них может бросить эксепшен (не чистые, да, могу их пооборачивать). После выполнения эффекта я хочу получить или саксес, или обработать эксепшен\ошибку\етс и *получить степ, который ошибку сделал*  для её обработки (вызвать коллбек на ней с фолаут хендлером).
Вопрос - как проще всего запилить такую функциональность? Пока думаю позаворачивать вызовы в Ior из котов, в котором будет лежать айзер с ошибкой и последним успешным стейтом или просто пустой айзер с саксесом и последний степ.
Есть ли варианты получше? Каждый степ оборачивать как-то влом :)
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Пока не очень понятно
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Что значит "получить степ" и что значит "вызвать коллбек на ошибке с фолаут хендлером", нужно ли продолжать выполнение после ошибки, или нет
источник