NV
Size: a a a
NV
ΛВ
Y
λ
Y
λ
λ
K
λ
DO
res <- ZIO.access[S3] { s3 =>фикс, чтоб
new MyS3 {
val list = s3.get.listObjects(conf.bucket, "", Int.MaxValue).mapError(s3Exception)
val uploadCandidates = for {
all <- list
...
s3.listObjects
вычитывался при каждом вызовеenv <- ZIO.environment[S3]мне кажется, что должно работать одинаково, но в первом случае
} yield new MyS3 {
val list = s3.listObjects(conf.bucket, "", Int.MaxValue).mapError(s3Exception)
.provide(env)
val uploadCandidates = for {
all <- list
...
s3.get.listObjects
запрашивается ровно раз, хотя всё что после выполняется при каждом вызовеλ
Y
Oℕ
DO
Oℕ
DO
Oℕ
Oℕ
DO
map
:val uploadCandidates: IO[Capture[SyncErr], List[S3ObjectSummary]] = for {
all: S3ObjectListing <- list
} yield all.objectSummaries.filterNot { f =>
conf.outbox.exists(out => f.key.startsWith(s"$out/")) || f.key.endsWith("/")
}
DO
new MyS3 {и видел логирование на каждый вызов, но
val list = s3.get.listObjects(conf.bucket, "", Int.MaxValue).mapError(s3Exception) <* log.debug("s3.get.listObjects")
listObjects
вызывался 1 раз