Skip to content

Support for s3sync.rb directories #5374

Closed
@cyberduck

Description

@cyberduck

d0d4ee7 created the issue

s3sync.rb (http://www.s3sync.net/) is a cross-platform Ruby program that easily transfers directories between a local directory and an Amazon S3 bucket:prefix.
I greatly recommend s3sync for any big S3 synchronization tasks.

Cyberduck (tested version 3.7 / 7380) does not yet support S3 directories created by s3sync, even though they are correctly displayed as directories in e.g. S3Fox (S3 Firefox plugin). The developer of s3sync quotes in his README:

In S3 there's no actual concept of folders, just keys and nodes. So, every tool
uses its own proprietary way of storing dir info (my scheme being the best
naturally) and in general the methods are not compatible.

s3sync seems to store directories as dummy nodes that all contain the same directory string "{E40327BF-517A-46e8-A6C3-AF51BC263F59}". See code snippets of s3sync.rb:

	$S3syncDirString = '{E40327BF-517A-46e8-A6C3-AF51BC263F59}'
	$S3syncDirTag = 'd66759af42f282e1ba19144df2d405d0'
	$S3syncDirFile = Tempfile.new("s3sync")
	$S3syncDirFile.puts $S3syncDirString
	$S3syncDirFile.close # not final; we need this file again to 'put' directory nodes

...

		def directory?()
			@tag ## $S3syncDirTag and @size $S3syncDirString.length

...

				# all s3 directories are dummy nodes contain the same directory string
				# so for easy comparison, set our size and tag thusly
				@size = $S3syncDirString.length
				@tag = $S3syncDirTag

It would be great if Cyberduck would support those directories as well in the future.

thanks!
Regards, Philip


Attachments

Metadata

Metadata

Assignees

Labels

bugfixeds3AWS S3 Protocol Implementation

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions