Commit Graph

25 Commits

Author SHA1 Message Date
ggtakec@gmail.com
cc6bd2181b 1) Fixed a memory leak and un-closed file discriptor.
2) Added a static table for file discriptors and paths which is keeped until closing.
   The s3fs_xxxx function called by FUSE is able to use a file disctiptor which is already opened by s3fs_open function.
3) The mknod is changed that it always return error, because it does not work through a network.
4) The symbolic file attribute changed to S_IFLNK | S_IRWXU | S_IRWXG | S_IRWXO.
5) Fixed the truncate function to work.
6) The mkdir and clone_directory_object functions are simplified and are changed to use the common create_directory_object function for these.
   For fixed a bug that the directory's PID/UID/mode are changed when these are  renamed.
7) The get_object_name function is changed to check a object finely. 
8) The s3fs_check_service function is changed for "301" response code.
9) Added the noxmlns option for a case of the response without xmlns field. (for the storage compatible with S3)
10) Added the nocopyapi option for the storage compatible with S3 without copy API.

* Comments 
  No.9 and No.10 are for the storage compatible with AWS S3.
  Both option are unnecessary options for AWS S3.
  In future, for the s3fs's promotion and possibility I would like to add new function.




git-svn-id: http://s3fs.googlecode.com/svn/trunk@384 df820570-a93a-0410-bd06-b72b767a4274
2013-01-19 16:05:07 +00:00
ben.lemasurier@gmail.com
79ee801b94 cleanup HTTP DELETE operations to use the same curl interface
git-svn-id: http://s3fs.googlecode.com/svn/trunk@381 df820570-a93a-0410-bd06-b72b767a4274
2011-08-31 22:20:20 +00:00
ben.lemasurier@gmail.com
9fb05fba4f moved calc_signature to curl.cpp
git-svn-id: http://s3fs.googlecode.com/svn/trunk@380 df820570-a93a-0410-bd06-b72b767a4274
2011-08-31 20:36:40 +00:00
ben.lemasurier@gmail.com
a00c220062 s3fs_getattr simplified, now uses get_headers()
git-svn-id: http://s3fs.googlecode.com/svn/trunk@377 df820570-a93a-0410-bd06-b72b767a4274
2011-08-31 19:02:30 +00:00
ben.lemasurier@gmail.com
f333ad5d22 cleaning up x-amz-meta retrieval
git-svn-id: http://s3fs.googlecode.com/svn/trunk@376 df820570-a93a-0410-bd06-b72b767a4274
2011-08-31 17:37:55 +00:00
ben.lemasurier@gmail.com
cf43a2a260 Fixes a compile-time bug in 32bit systems and a memory leak in md5sum()
git-svn-id: http://s3fs.googlecode.com/svn/trunk@367 df820570-a93a-0410-bd06-b72b767a4274
2011-08-30 15:20:49 +00:00
ben.lemasurier@gmail.com
c933b6a9b1 Support for modifying files > 5GB (fixes issue #215)
Modified rename_object and put_headers to handle objects larger than
5GB. Files larger than 5GB are required to use the multi interface.


git-svn-id: http://s3fs.googlecode.com/svn/trunk@363 df820570-a93a-0410-bd06-b72b767a4274
2011-08-29 22:01:32 +00:00
ben.lemasurier@gmail.com
2eafa487d7 Massive speed improvements for readdir operations
complete s3fs_readdir() refactor
    - multi interface now batches HTTP requests
      - proper HTTP KeepAlive sessions are back! (CURLOPT_FORBID_REUSE is no longer required)
    - use xpath to quickly grab xml nodes
    - lots of cleanup
    - fixes some strange stat cache behavior
    - huge readdir performance benefits (8-14x in my case) on large directories



git-svn-id: http://s3fs.googlecode.com/svn/trunk@348 df820570-a93a-0410-bd06-b72b767a4274
2011-07-02 02:11:54 +00:00
ben.lemasurier@gmail.com
1a6885359c Ability to disable multipart uploads
- Added 'nomultipart' option to disable multipart uploads
  - see issue #181


git-svn-id: http://s3fs.googlecode.com/svn/trunk@347 df820570-a93a-0410-bd06-b72b767a4274
2011-06-27 02:21:38 +00:00
ben.lemasurier@gmail.com
1597dfe659 Support for mounting a remote directory (issue #7).
- fixed a bug in the file cache, it was attempting to set the mtime
    on symlinks
  - general code cleanup; moved some string functions to string_util.cpp


git-svn-id: http://s3fs.googlecode.com/svn/trunk@345 df820570-a93a-0410-bd06-b72b767a4274
2011-06-26 00:37:52 +00:00
ben.lemasurier@gmail.com
6cd9e9e65d moved generic curl routines to their own file
git-svn-id: http://s3fs.googlecode.com/svn/trunk@332 df820570-a93a-0410-bd06-b72b767a4274
2011-03-01 19:35:55 +00:00
ben.lemasurier@gmail.com
48d1a73e06 cleanup only; s3fs.cpp is getting huge, split caching to its own file
git-svn-id: http://s3fs.googlecode.com/svn/trunk@328 df820570-a93a-0410-bd06-b72b767a4274
2011-02-25 17:35:12 +00:00
ben.lemasurier@gmail.com
0fb4427444 Fixes issues #134, "double upload". This _should_ result in a large performance improvment.
- s3fs_flush() now checks to see whether the file on the remote end is the same as the local copy.
  - md5sum() now requires a file descriptor instead of a path.



git-svn-id: http://s3fs.googlecode.com/svn/trunk@322 df820570-a93a-0410-bd06-b72b767a4274
2011-02-22 21:28:01 +00:00
ben.lemasurier@gmail.com
1496f6a81e Further multipart cleanup/error checking, in preparation for multi-threaded uploads.
"Last-Modified" is now returned with get_headers() data


git-svn-id: http://s3fs.googlecode.com/svn/trunk@320 df820570-a93a-0410-bd06-b72b767a4274
2011-02-17 17:31:43 +00:00
ben.lemasurier@gmail.com
00bde54d0a A large amount of cleanup for multipart uploads; preparation work for upcoming multi-threaded upload support.
Functional changes are limited to the multipart upload process. Each uploaded part is now verified against a local md5sum.



git-svn-id: http://s3fs.googlecode.com/svn/trunk@318 df820570-a93a-0410-bd06-b72b767a4274
2011-02-15 23:32:27 +00:00
mooredan@suncup.net
6a3a68b01c Bound the size of stat_cache as described in issue #157
git-svn-id: http://s3fs.googlecode.com/svn/trunk@315 df820570-a93a-0410-bd06-b72b767a4274
2011-02-12 15:02:44 +00:00
apetresc
fd2a6c120a Committing patch contributed by Ben LeMasurier to cache directory attributes. Details and tests on Issue 150.
git-svn-id: http://s3fs.googlecode.com/svn/trunk@309 df820570-a93a-0410-bd06-b72b767a4274
2011-02-08 18:23:38 +00:00
mooredan@suncup.net
f94bbd70f9 Cleaned up compile time warnings as reported by -Wall
Beginning of s3fs "utility" mode - initially -u option
just reports in progress multipart uploads for the
bucket. Eventually this mode could be used for
other S3 tasks not accessible through typical
file system operations

For multipart upload, use safer mkstemp() instead
of tmpnam() for temporary file

Increased the curl connect and readwrite timeouts
to 10 and 30 seconds respectively.

Autodetect when a big file is being uploaded,
increase the readwrite timeout to 120 seconds. This
was found through experimentation.  When uploading
a big file, it is suspected that time is needed
for S3 to assemble the file before it is available
for access. It was found that when a large file
was uploaded via rsync, the final mtime and
chmod modifications were timing out, even though
the upload itself was successful.


Multipart upload is ready for use. A couple of
error checks are still needed in the function and
some cleanup.  Need some feedback on how it
is working though.




git-svn-id: http://s3fs.googlecode.com/svn/trunk@298 df820570-a93a-0410-bd06-b72b767a4274
2010-12-30 03:13:21 +00:00
mooredan@suncup.net
acc7363433 Checkpoint for implementation of multipart upload
Check issue #142 for details

Code is operational, but not quite ready for
prime time -- needs some clean up


git-svn-id: http://s3fs.googlecode.com/svn/trunk@297 df820570-a93a-0410-bd06-b72b767a4274
2010-12-28 04:15:23 +00:00
mooredan@suncup.net
90ee6b8f9b Some more unwinding of the C++ classes, should make
refactoring easier and the code easier to understand (for me anyway)

Opened up the VERIFY macro so that memory cleanup can be done
before returning from a function.

Make the file descriptor function calls a bit more robust,
check the return codes.

Current code tested on Debian sid, CentOS (with FUSE 2.84) and Ubuntu 10.10




git-svn-id: http://s3fs.googlecode.com/svn/trunk@286 df820570-a93a-0410-bd06-b72b767a4274
2010-12-19 22:27:56 +00:00
mooredan@suncup.net
f56b95f11e Fixed memory leak issues as outlined in issue #104
No tarball until further testing on other platforms.
Extensively tested on Debian sid 64bit

Resolves issue #104


git-svn-id: http://s3fs.googlecode.com/svn/trunk@285 df820570-a93a-0410-bd06-b72b767a4274
2010-12-19 01:34:27 +00:00
mooredan@suncup.net
9c6d671fec Service another curl error appropriately
do not output via cout unless we are in "foreground" mode


git-svn-id: http://s3fs.googlecode.com/svn/trunk@279 df820570-a93a-0410-bd06-b72b767a4274
2010-12-09 20:56:29 +00:00
mooredan@suncup.net
8b10de5559 Added an additional check in check_service to
expose the curl compiled with openssl vs. nss issue.

If the issue is seen, emit an informational message
and give the user an option to over-ride checking of
the hostname -- it's recommended not to use bucket
names with periods and https

As implied, added an option ssl_verify_hostname=[0|1]

Tested on fedora 14. Will check on Ubuntu/Debian/CentOS
after check in.

Resolves issue #128



git-svn-id: http://s3fs.googlecode.com/svn/trunk@270 df820570-a93a-0410-bd06-b72b767a4274
2010-11-26 22:11:48 +00:00
mooredan@suncup.net
49c3687a52 This is a fix for Issue #125. Add a more robust way of
trapping the CURLE_SSL_CACERT error and trying to automatically
correct it. 

Tested on CentOS 5.5 and ensured that Debian/Ubuntu doesn't break
because of this. This only applies to the https usage.



git-svn-id: http://s3fs.googlecode.com/svn/trunk@269 df820570-a93a-0410-bd06-b72b767a4274
2010-11-26 03:13:53 +00:00
mooredan@suncup.net
e9b8216d21 In preparation to remove the unnecessary "s3fs"
directory from the trunk directory.

First do a svn cp of all of the source up to
trunk.  This is supposed to preserve change
history -- we'll see.

The source remains untouched until this gets
worked out.

Also in preparation of bringing in the source
collateral for the debian package into the
repository. I expect that the top level will
look like this:

svn/
   s3fs/
      trunk/
      tags/
      branches/
   dpkg/
      trunk/
      tags/
      branches/


So far that's how it is looking.  I'll be
very careful to ensure integrity of the data.
As a result this may be a multistep process.



git-svn-id: http://s3fs.googlecode.com/svn/trunk@236 df820570-a93a-0410-bd06-b72b767a4274
2010-11-13 23:59:23 +00:00