@@ -70,7 +70,7 @@ data class PutJobData(
70
70
}
71
71
72
72
override val job: Ds3ClientHelpers .Job by lazy {
73
- val ds3Objects = items.map { pathToDs3Object(it.second) }.flatMap { it.asIterable() }
73
+ val ds3Objects = items.map { pathToDs3Object(it.second) }.flatten()
74
74
ds3Objects.map { pair: Pair <Ds3Object , Path > -> Pair <String , Path >(pair.first.name, pair.second) }
75
75
.forEach { prefixMap.put(it.first, it.second) }
76
76
if (ds3Objects.isEmpty()) {
@@ -120,16 +120,18 @@ data class PutJobData(
120
120
override fun getObjectChannelBuilder (prefix : String ): Ds3ClientHelpers .ObjectChannelBuilder =
121
121
EmptyChannelBuilder (FileObjectPutter (prefixMap.get(prefix)!! .parent), prefixMap.get(prefix)!! )
122
122
123
- private fun pathToDs3Object (path : Path ): Sequence <Pair <Ds3Object , Path >> {
123
+ private fun pathToDs3Object (path : Path ): List <Pair <Ds3Object , Path >> {
124
+ val parent = path.parent
124
125
return path
125
126
.toFile()
126
127
.walk(FileWalkDirection .TOP_DOWN )
127
128
.filter(::rejectEmptyDirectory)
128
129
.filter(::rejectDeadLinks)
129
130
.map(::addSize)
130
- .map(:: convertToDs3Object)
131
+ .map { convertToDs3Object(it, parent) }
131
132
.map { Pair (it, path) }
132
133
.distinct()
134
+ .toList()
133
135
}
134
136
135
137
private fun addSize (file : File ): Pair <File , Long > =
@@ -138,9 +140,8 @@ data class PutJobData(
138
140
private fun rejectEmptyDirectory (file : File ) =
139
141
! (file.isDirectory && Files .list(file.toPath()).use { f -> f.findAny().isPresent })
140
142
141
- private fun convertToDs3Object (fileParts : Pair <File , Long >): Ds3Object {
143
+ private fun convertToDs3Object (fileParts : Pair <File , Long >, parent : Path ): Ds3Object {
142
144
val (file, size) = fileParts
143
- val parent = file.toPath().parent
144
145
val pathBuilder = StringBuilder (targetDir)
145
146
val localDelim = file.toPath().fileSystem.separator
146
147
pathBuilder.append(parent.relativize(file.toPath()).toString().replace(localDelim, " /" ))
0 commit comments