felipecrv commented on code in PR #40147:
URL: https://github.com/apache/arrow/pull/40147#discussion_r1513010171
##########
cpp/src/arrow/filesystem/s3fs.cc:
##########
@@ -2145,7 +2166,10 @@ class S3FileSystem::Impl : public
std::enable_shared_from_this<S3FileSystem::Imp
child_path_ss << bucket << kSep << child_key;
child_key = child_path_ss.str();
if (obj.GetSize() > 0 || !had_trailing_slash) {
- // We found a real file
+ // We found a real file.
+ // XXX Ideally, for 0-sized files we would also check the
Content-Type
+ // against kAwsDirectoryContentType, but ListObjectsV2 does not
give
+ // that information.
Review Comment:
For example:
s3fs doesn't support `Move` yet I think, but if it were to support, the
semantics of the path validations take the trailing `/` in `dest` to mean `src`
should also be a directory. It's OK to pass `/`-less to `Move` that refer to
directories, but it's not OK to pass paths with trailing slashes that refer to
files.
This prevents accidental overrides of files by `Move(src, dest)` because
directories can only be overriden if they are empty.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]