Git Product home page Git Product logo

s3dsl's Introduction

s3dsl

Release Artifacts

Minimal, stream based S3 DSL. Depends on aws-java-sdk-s3.

Getting s3dsl

If you're using SBT, add the following line to your build file:

libraryDependencies += "com.github.wirthan" %% "s3dsl" % <version>

Quick Start

Initialize an interpreter

s3dsl provides a function that returns a cats-effect interpreter:

import s3dsl.S3Dsl._
import s3dsl.domain.S3._

val config = S3Config(
  creds = new BasicAWSCredentials("BQKN8G6V2DQ83DH3AHPN", "GPD7MUZqy6XGtTz7h2QPyJbggGkQfigwDnaJNrgF"),
  endpoint = new EndpointConfiguration("http://localhost:9000", "us-east-1"),
  blockingEc = ExecutionContext.fromExecutor(Executors.newCachedThreadPool)
)

val cs = IO.contextShift(ExecutionContext.fromExecutor(Executors.newFixedThreadPool(3)))
val s3 = interpreter(config, cs)(IO.ioConcurrentEffect(cs))

Use the interpreter

val path = Path(BucketName("mybucket"), Key("blob.txt"))
val blob = "abc".getBytes

// se.getObject consists of Stream[IO, Byte] 
val content: Stream[IO, Byte] = for {
  _ <- Stream.emits(blob).covary[IO]
        .through(s3.putObject(path, blob.length.longValue))
        .compile.drain
  content <- s3.getObject(path, 1024)      
} yield content

s3dsl's People

Contributors

wirthan avatar alexanderray avatar awisrf avatar dougc avatar mahe-ymc avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.