Skip to content

Commit

Permalink
removed env variable and added as input
Browse files Browse the repository at this point in the history
  • Loading branch information
AsterITA committed Jun 10, 2024
1 parent ec41e3a commit 85e82d8
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 35 deletions.
4 changes: 1 addition & 3 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,7 @@ lazy val fileManager = project
.settings(
name := "interop-commons-file-manager",
sharedSettings,
libraryDependencies ++= Dependencies.Jars.fileDependencies,
Test / fork := true,
Test / javaOptions += "-Dconfig.file=src/test/resources/application-test.conf"
libraryDependencies ++= Dependencies.Jars.fileDependencies
)
.dependsOn(utils)
.setupBuildInfo
Expand Down
2 changes: 0 additions & 2 deletions file-manager/src/main/resources/application.conf

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,5 @@ import com.typesafe.config.{Config, ConfigFactory}
object StorageConfiguration {
val config: Config = ConfigFactory.load()

val maxConcurrency: Int = config.getInt("interop-commons.storage.max-concurrency")
val getUrlDurationMinutes: Int = config.getInt("get-url-duration-minutes")
val putUrlDurationMinutes: Int = config.getInt("put-url-duration-minutes")
val maxConcurrency: Int = config.getInt("interop-commons.storage.max-concurrency")
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ trait FileManager {

def close(): Unit

def generateGetPresignedUrl(bucketName: String, path: String, fileName: String): Try[String]
def generateGetPresignedUrl(bucketName: String, path: String, fileName: String, duration: Int): Try[String]

def generatePutPresignedUrl(bucketName: String, path: String, fileName: String): Try[String]
def generatePutPresignedUrl(bucketName: String, path: String, fileName: String, duration: Int): Try[String]
}

object FileManager {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,22 @@ final class FileManagerImpl(blockingExecutionContext: ExecutionContextExecutor)
pathCreated.resolve(fileName.stripMargin('/'))
}

override def generateGetPresignedUrl(bucketName: String, path: String, fileName: String): Try[String] = {
override def generateGetPresignedUrl(
bucketName: String,
path: String,
fileName: String,
duration: Int
): Try[String] = {
val destPath: String = createPath(path, "", fileName).toAbsolutePath.toString
Try(destPath)
}

override def generatePutPresignedUrl(bucketName: String, path: String, fileName: String): Try[String] = {
override def generatePutPresignedUrl(
bucketName: String,
path: String,
fileName: String,
duration: Int
): Try[String] = {
val destPath: String = createPath(path, "", fileName).toAbsolutePath.toString
Try(destPath)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,13 @@ final class S3ManagerImpl(blockingExecutionContext: ExecutionContextExecutor)(

def calcContentMd5(byteArray: Array[Byte]): String = new String(Base64.encodeBase64(DigestUtils.md5(byteArray)))

override def generateGetPresignedUrl(bucketName: String, path: String, fileName: String): Try[String] = {
val key: String = s3Key(path, "", fileName)
override def generateGetPresignedUrl(
bucketName: String,
path: String,
fileName: String,
duration: Int
): Try[String] = {
val key: String = s3Key(path, "", fileName)

Using(S3Presigner.create()) { s3Presigner =>
val objectRequest: GetObjectRequest = GetObjectRequest
Expand All @@ -179,7 +184,7 @@ final class S3ManagerImpl(blockingExecutionContext: ExecutionContextExecutor)(

val presignRequest: GetObjectPresignRequest = GetObjectPresignRequest
.builder()
.signatureDuration(Duration.ofMinutes(StorageConfiguration.getUrlDurationMinutes.toLong))
.signatureDuration(Duration.ofMinutes(duration.toLong))
.getObjectRequest(objectRequest)
.build()

Expand All @@ -188,8 +193,13 @@ final class S3ManagerImpl(blockingExecutionContext: ExecutionContextExecutor)(
}
}

override def generatePutPresignedUrl(bucketName: String, path: String, fileName: String): Try[String] = {
val key: String = s3Key(path, "", fileName)
override def generatePutPresignedUrl(
bucketName: String,
path: String,
fileName: String,
duration: Int
): Try[String] = {
val key: String = s3Key(path, "", fileName)

Using(S3Presigner.create()) { s3Presigner =>
val objectRequest: PutObjectRequest = PutObjectRequest
Expand All @@ -200,7 +210,7 @@ final class S3ManagerImpl(blockingExecutionContext: ExecutionContextExecutor)(

val presignRequest: PutObjectPresignRequest = PutObjectPresignRequest
.builder()
.signatureDuration(Duration.ofMinutes(StorageConfiguration.putUrlDurationMinutes.toLong))
.signatureDuration(Duration.ofMinutes(duration.toLong))
.putObjectRequest(objectRequest)
.build()

Expand Down
2 changes: 0 additions & 2 deletions file-manager/src/test/resources/application-test.conf

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ class S3FileManagerTest

"have a single file with just one is written" in {
val filesAndContent: Future[(List[String], String)] = for {
_ <- fileManager.storeBytes("testBucket", "testFolder", "testFile")("testFile".getBytes())
files <- fileManager.listFiles("testBucket")("/testFolder")
_ <- fileManager.storeBytes("testBucket", "testFolder", "testFile")("testFile".getBytes())
files <- fileManager.listFiles("testBucket")("/testFolder")
content <- fileManager.getFile("testBucket")("/testFolder/testFile").map(new String(_))
} yield (files, content)

Expand All @@ -77,10 +77,10 @@ class S3FileManagerTest

"have two files, one of whom in the root dir" in {
val filesAndContent: Future[(List[String], String, String)] = for {
_ <- fileManager.storeBytes("testBucket", "", "rootFile")("rootFile".getBytes())
_ <- fileManager.storeBytes("testBucket", "testFolder", "testFile")("testFile".getBytes())
files <- fileManager.listFiles("testBucket")("")
content <- fileManager.getFile("testBucket")("/testFolder/testFile").map(new String(_))
_ <- fileManager.storeBytes("testBucket", "", "rootFile")("rootFile".getBytes())
_ <- fileManager.storeBytes("testBucket", "testFolder", "testFile")("testFile".getBytes())
files <- fileManager.listFiles("testBucket")("")
content <- fileManager.getFile("testBucket")("/testFolder/testFile").map(new String(_))
rootContent <- fileManager.getFile("testBucket")("/rootFile").map(new String(_))
} yield (files, content, rootContent)

Expand All @@ -91,27 +91,27 @@ class S3FileManagerTest
}
"get all the files" in {
val filesF: Future[Map[String, Array[Byte]]] = for {
_ <- fileManager.storeBytes("testBucket", "", "rootFile")("rootFile".getBytes())
_ <- fileManager.storeBytes("testBucket", "testFolder", "testFile")("testFile".getBytes())
_ <- fileManager.storeBytes("testBucket", "testFolder/nestedFolder", "nestedFile")("nestedFile".getBytes())
_ <- fileManager.storeBytes("testBucket", "", "rootFile")("rootFile".getBytes())
_ <- fileManager.storeBytes("testBucket", "testFolder", "testFile")("testFile".getBytes())
_ <- fileManager.storeBytes("testBucket", "testFolder/nestedFolder", "nestedFile")("nestedFile".getBytes())
files <- fileManager.getAllFiles("testBucket")("")
} yield files

val files = filesF.futureValue
val files = filesF.futureValue
val contentMap = files.map { case (k, v) => (k, new String(v)) }
val expected = Map(
"rootFile" -> "rootFile",
"testFolder/testFile" -> "testFile",
val expected = Map(
"rootFile" -> "rootFile",
"testFolder/testFile" -> "testFile",
"testFolder/nestedFolder/nestedFile" -> "nestedFile"
)
assert(contentMap == expected)
}
"Get presigned url" in {
val url = fileManager.generateGetPresignedUrl("testBucket", "testFolder", "testFile").get
val url = fileManager.generateGetPresignedUrl("testBucket", "testFolder", "testFile", 5).get
assert(url.nonEmpty)
}
"Put presigned url" in {
val url = fileManager.generatePutPresignedUrl("testBucket", "testFolder", "testFile").get
val url = fileManager.generatePutPresignedUrl("testBucket", "testFolder", "testFile", 1).get
assert(url.nonEmpty)
}
}
Expand Down

0 comments on commit 85e82d8

Please sign in to comment.