2013-06-27 35 views
3

由於沒有找到關於如何列出S3存儲桶中的所有文件的任何好解釋,我感到沮喪。S3上的列表文件

我有這個桶上有大約20個圖像。我想要做的就是列出它們。有人說「只使用S3.list-method」。但沒有任何特殊的庫,就沒有S3.list方法。 我有一個S3.get方法,我沒有去工作。如果有人告訴我如何從S3存儲桶中獲取所有文件(文件名)的列表,Arggh會很感激。

val S3files = S3.get(bucketName: String, path: Option[String], prefix: Option[String], delimiter: Option[String]) 

返回未來[迴應]

我不知道如何使用這個S3.get。 列出S3存儲桶中所有文件的最簡單方法是什麼?

非常感謝!

回答

5

使用圖書館的位置:

https://github.com/Rhinofly/play-s3

你應該能夠做這樣的事情:

import concurrent.ExecutionContext.Implicits._ 

val bucket = S3("bucketName") 
val result = bucket.list 
result.map { 
    case Left(error) => throw new Exception("Error: " + x) 
    case Right(list) => 
    list.foreach { 
     case BucketItem(name, isVirtual) => //... 
    } 
} 

你必須在關於調整這個有點憑據,但例子顯示瞭如何做到這一點。

+0

非常感謝,幫助我!我調整了一下,我會發布我的解決方案。 – raxelsson

2
def listS3Files() = Action { 
Await.result(S3("bucketName").list, 15 seconds).fold(
{ error => { 
    Logger.error("Error") 
    Status(INTERNAL_SERVER_ERROR) 
}}, 
    success => { 
    Ok(success.seq.toString()) 
    } 
) 
} 

這是我的工作解決方案。感謝@cmbaxter