[Cyberduck-trac] [Cyberduck] #5374: Support for s3sync.rb directories

Cyberduck trac at trac.cyberduck.ch
Sun Oct 24 15:45:21 CEST 2010


#5374: Support for s3sync.rb directories
----------------------------------------------------------------------------------------------+
 Reporter:  https://www.google.com/accounts/o8/id?id=aitoawlrmuzhq-_kxl0hxjzrfjbbrckk3e4bleq  |          Owner:  dkocher
     Type:  defect                                                                            |         Status:  new    
 Priority:  normal                                                                            |      Milestone:  4.0    
Component:  s3                                                                                |        Version:  3.7    
 Severity:  normal                                                                            |       Keywords:         
 Platform:  Mac OS X 10.6                                                                     |   Architecture:  Intel  
----------------------------------------------------------------------------------------------+
 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

-- 
Ticket URL: <http://trac.cyberduck.ch/ticket/5374>
Cyberduck <http://cyberduck.ch>
Open source FTP, SFTP, WebDAV, Cloud Files, Google Docs & Amazon S3 Browser for Mac & Windows.


More information about the Cyberduck-trac mailing list