[GH-ISSUE #305] Does it support mount a s3-ceph bucket as a file system? #159

Closed
opened 2026-03-04 01:42:43 +03:00 by kerem · 13 comments
Owner

Originally created by @jindov on GitHub (Nov 30, 2015).
Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/305

I setup a ceph storage system with s3 api built-in and want to mount a ceph-bucket as a file-system to my server, does this tool support?and how to config it for custom storage?Thanks

Originally created by @jindov on GitHub (Nov 30, 2015). Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/305 I setup a ceph storage system with s3 api built-in and want to mount a ceph-bucket as a file-system to my server, does this tool support?and how to config it for custom storage?Thanks
kerem closed this issue 2026-03-04 01:42:44 +03:00
Author
Owner

@gaul commented on GitHub (Nov 30, 2015):

Mount a non-AWS S3 bucket via:

s3fs $BUCKET $PATH -o sigv2 -o url=https://HOST:PORT/

Note that you may need to use -o nocopyapi depending on Ceph's support for copy object which older Ceph versions do not support.

<!-- gh-comment-id:160653913 --> @gaul commented on GitHub (Nov 30, 2015): Mount a non-AWS S3 bucket via: ``` s3fs $BUCKET $PATH -o sigv2 -o url=https://HOST:PORT/ ``` Note that you may need to use `-o nocopyapi` depending on Ceph's support for copy object which older Ceph versions do not support.
Author
Owner

@higkoo commented on GitHub (Dec 3, 2015):

uname -a

Linux ceph 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) x86_64 GNU/Linux

ceph -v

ceph version 9.2.0 (bb2ecea240f3a1d525bcb35670cb07bd1f0ca299)

s3cmd --version

s3cmd version 1.6.0 # PASS

s3fs --version

Amazon Simple Storage Service File System V1.79(commit:8dbd5a3) with OpenSSL

Sucess


s3fs my-new-bucket-1 /mnt/s3 -o sigv2 -o use_path_request_style -o passwd_file=/root/.s3.pass -o url=http://shd-storage-3.bilibili.co -d

s3fs on /mnt/s3 type fuse.s3fs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
Filesystem     Type       Size  Used Avail Use% Mounted on
s3fs           fuse.s3fs  256T     0  256T   0% /mnt/s3
<!-- gh-comment-id:161727598 --> @higkoo commented on GitHub (Dec 3, 2015): ### uname -a Linux ceph 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) x86_64 GNU/Linux ### ceph -v ceph version 9.2.0 (bb2ecea240f3a1d525bcb35670cb07bd1f0ca299) ### s3cmd --version s3cmd version 1.6.0 # PASS ### s3fs --version Amazon Simple Storage Service File System V1.79(commit:8dbd5a3) with OpenSSL ### Sucess --- `s3fs my-new-bucket-1 /mnt/s3 -o sigv2 -o use_path_request_style -o passwd_file=/root/.s3.pass -o url=http://shd-storage-3.bilibili.co -d` ``` s3fs on /mnt/s3 type fuse.s3fs (rw,nosuid,nodev,relatime,user_id=0,group_id=0) Filesystem Type Size Used Avail Use% Mounted on s3fs fuse.s3fs 256T 0 256T 0% /mnt/s3 ```
Author
Owner

@jindov commented on GitHub (Dec 4, 2015):

I'll try and report. Thank all

<!-- gh-comment-id:161846677 --> @jindov commented on GitHub (Dec 4, 2015): I'll try and report. Thank all
Author
Owner

@jindov commented on GitHub (Dec 4, 2015):

Hi all, i test with my system and this is result:

[INF] s3fs.cpp:s3fs_getattr(797): [path=/abc]
[INF]       curl.cpp:HeadRequest(2276): [tpath=/abc]
[INF]       curl.cpp:PreHeadRequest(2214): [tpath=/abc][bpath=][save=][sseckeypos=-1]
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc
[INF]       curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT
[INF]       curl.cpp:HeadRequest(2276): [tpath=/abc/]
[INF]       curl.cpp:PreHeadRequest(2214): [tpath=/abc/][bpath=][save=][sseckeypos=-1]
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc/
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc/
[INF]       curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT
[INF]       curl.cpp:HeadRequest(2276): [tpath=/abc_$folder$]
[INF]       curl.cpp:PreHeadRequest(2214): [tpath=/abc_$folder$][bpath=][save=][sseckeypos=-1]
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc_%24folder%24
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc_%24folder%24
[INF]       curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT
[INF]   s3fs.cpp:list_bucket(2411): [path=/abc]
[INF]       curl.cpp:ListBucketRequest(2692): [tpath=/abc]
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash?delimiter=/&max-keys=1&prefix=abc/
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net?delimiter=/&max-keys=1&prefix=abc/
[INF]       curl.cpp:RequestPerform(1743): HTTP response code 200
[WAN] s3fs.cpp:append_objects_from_xml_ex(2507): contents_xp->nodesetval is empty.
[WAN] s3fs.cpp:append_objects_from_xml_ex(2507): contents_xp->nodesetval is empty.
[INF] s3fs.cpp:s3fs_create(927): [path=/abc][mode=100644][flags=33345]
[INF]       curl.cpp:HeadRequest(2276): [tpath=/abc]
[INF]       curl.cpp:PreHeadRequest(2214): [tpath=/abc][bpath=][save=][sseckeypos=-1]
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc
[INF]       curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT
[INF]       curl.cpp:HeadRequest(2276): [tpath=/abc/]
[INF]       curl.cpp:PreHeadRequest(2214): [tpath=/abc/][bpath=][save=][sseckeypos=-1]
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc/
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc/
[INF]       curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT
[INF]       curl.cpp:HeadRequest(2276): [tpath=/abc_$folder$]
[INF]       curl.cpp:PreHeadRequest(2214): [tpath=/abc_$folder$][bpath=][save=][sseckeypos=-1]
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc_%24folder%24
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc_%24folder%24
[INF]       curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT
[INF]   s3fs.cpp:list_bucket(2411): [path=/abc]
[INF]       curl.cpp:ListBucketRequest(2692): [tpath=/abc]
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash?delimiter=/&max-keys=1&prefix=abc/
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net?delimiter=/&max-keys=1&prefix=abc/
[INF]       curl.cpp:RequestPerform(1743): HTTP response code 200
[WAN] s3fs.cpp:append_objects_from_xml_ex(2507): contents_xp->nodesetval is empty.
[WAN] s3fs.cpp:append_objects_from_xml_ex(2507): contents_xp->nodesetval is empty.
[INF]     s3fs.cpp:create_file_object(888): [path=/abc][mode=100644]
[INF]       curl.cpp:PutRequest(2430): [tpath=/abc]
[INF]       curl.cpp:PutRequest(2447): create zero byte file object.
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc
[INF]       curl.cpp:PutRequest(2538): uploading... [path=/abc][fd=-1][size=0]
[INF]       curl.cpp:RequestPerform(1743): HTTP response code 200
[INF]       cache.cpp:DelStat(385): delete stat cache entry[path=/abc]
[INF]       curl.cpp:HeadRequest(2276): [tpath=/abc]
[INF]       curl.cpp:PreHeadRequest(2214): [tpath=/abc][bpath=][save=][sseckeypos=-1]
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc
[INF]       curl.cpp:RequestPerform(1743): HTTP response code 200
[INF]       cache.cpp:AddStat(248): add stat cache entry[path=/abc]
[INF] s3fs.cpp:s3fs_getattr(797): [path=/abc]
[INF] s3fs.cpp:s3fs_flush(2127): [path=/abc][fd=4]
[INF]       fdcache.cpp:RowFlush(1299): [tpath=][path=/abc][fd=4]
[INF] s3fs.cpp:s3fs_getxattr(3048): [path=/abc][name=security.capability][value=(nil)][size=0]
[INF] s3fs.cpp:s3fs_flush(2127): [path=/abc][fd=4]
[INF]       fdcache.cpp:RowFlush(1299): [tpath=][path=/abc][fd=4]
[INF]       curl.cpp:PutRequest(2430): [tpath=/abc]
[INF]       curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc
[INF]       curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc
[INF]       curl.cpp:PutRequest(2538): uploading... [path=/abc][fd=4][size=4]
[ERR] curl.cpp:CurlProgress(471): timeout now: 1449196391, curl_times[curl]: 1449196330, readwrite_timeout: 60
[ERR] curl.cpp:CurlProgress(471): timeout now: 1449196391, curl_times[curl]: 1449196330, readwrite_timeout: 60

I mounted and uploaded a file to bucket successfully but if I use a tool like logstash to output a real-time file, its timeout and occur error

This is my command:

/usr/local/bin/s3fs logstash /mnt/logstore -o sigv2,nocopyapi,url=http://s3.mydomain.net,passwd_file=/opt/s3fs-fuse/.passwd -d -f
<!-- gh-comment-id:161855291 --> @jindov commented on GitHub (Dec 4, 2015): Hi all, i test with my system and this is result: ``` [INF] s3fs.cpp:s3fs_getattr(797): [path=/abc] [INF] curl.cpp:HeadRequest(2276): [tpath=/abc] [INF] curl.cpp:PreHeadRequest(2214): [tpath=/abc][bpath=][save=][sseckeypos=-1] [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc [INF] curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT [INF] curl.cpp:HeadRequest(2276): [tpath=/abc/] [INF] curl.cpp:PreHeadRequest(2214): [tpath=/abc/][bpath=][save=][sseckeypos=-1] [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc/ [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc/ [INF] curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT [INF] curl.cpp:HeadRequest(2276): [tpath=/abc_$folder$] [INF] curl.cpp:PreHeadRequest(2214): [tpath=/abc_$folder$][bpath=][save=][sseckeypos=-1] [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc_%24folder%24 [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc_%24folder%24 [INF] curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT [INF] s3fs.cpp:list_bucket(2411): [path=/abc] [INF] curl.cpp:ListBucketRequest(2692): [tpath=/abc] [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash?delimiter=/&max-keys=1&prefix=abc/ [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net?delimiter=/&max-keys=1&prefix=abc/ [INF] curl.cpp:RequestPerform(1743): HTTP response code 200 [WAN] s3fs.cpp:append_objects_from_xml_ex(2507): contents_xp->nodesetval is empty. [WAN] s3fs.cpp:append_objects_from_xml_ex(2507): contents_xp->nodesetval is empty. [INF] s3fs.cpp:s3fs_create(927): [path=/abc][mode=100644][flags=33345] [INF] curl.cpp:HeadRequest(2276): [tpath=/abc] [INF] curl.cpp:PreHeadRequest(2214): [tpath=/abc][bpath=][save=][sseckeypos=-1] [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc [INF] curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT [INF] curl.cpp:HeadRequest(2276): [tpath=/abc/] [INF] curl.cpp:PreHeadRequest(2214): [tpath=/abc/][bpath=][save=][sseckeypos=-1] [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc/ [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc/ [INF] curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT [INF] curl.cpp:HeadRequest(2276): [tpath=/abc_$folder$] [INF] curl.cpp:PreHeadRequest(2214): [tpath=/abc_$folder$][bpath=][save=][sseckeypos=-1] [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc_%24folder%24 [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc_%24folder%24 [INF] curl.cpp:RequestPerform(1765): HTTP response code 404 was returned, returning ENOENT [INF] s3fs.cpp:list_bucket(2411): [path=/abc] [INF] curl.cpp:ListBucketRequest(2692): [tpath=/abc] [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash?delimiter=/&max-keys=1&prefix=abc/ [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net?delimiter=/&max-keys=1&prefix=abc/ [INF] curl.cpp:RequestPerform(1743): HTTP response code 200 [WAN] s3fs.cpp:append_objects_from_xml_ex(2507): contents_xp->nodesetval is empty. [WAN] s3fs.cpp:append_objects_from_xml_ex(2507): contents_xp->nodesetval is empty. [INF] s3fs.cpp:create_file_object(888): [path=/abc][mode=100644] [INF] curl.cpp:PutRequest(2430): [tpath=/abc] [INF] curl.cpp:PutRequest(2447): create zero byte file object. [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc [INF] curl.cpp:PutRequest(2538): uploading... [path=/abc][fd=-1][size=0] [INF] curl.cpp:RequestPerform(1743): HTTP response code 200 [INF] cache.cpp:DelStat(385): delete stat cache entry[path=/abc] [INF] curl.cpp:HeadRequest(2276): [tpath=/abc] [INF] curl.cpp:PreHeadRequest(2214): [tpath=/abc][bpath=][save=][sseckeypos=-1] [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc [INF] curl.cpp:RequestPerform(1743): HTTP response code 200 [INF] cache.cpp:AddStat(248): add stat cache entry[path=/abc] [INF] s3fs.cpp:s3fs_getattr(797): [path=/abc] [INF] s3fs.cpp:s3fs_flush(2127): [path=/abc][fd=4] [INF] fdcache.cpp:RowFlush(1299): [tpath=][path=/abc][fd=4] [INF] s3fs.cpp:s3fs_getxattr(3048): [path=/abc][name=security.capability][value=(nil)][size=0] [INF] s3fs.cpp:s3fs_flush(2127): [path=/abc][fd=4] [INF] fdcache.cpp:RowFlush(1299): [tpath=][path=/abc][fd=4] [INF] curl.cpp:PutRequest(2430): [tpath=/abc] [INF] curl.cpp:prepare_url(4140): URL is http://s3.mystorage.net/logstash/abc [INF] curl.cpp:prepare_url(4172): URL changed is http://logstash.s3.mystorage.net/abc [INF] curl.cpp:PutRequest(2538): uploading... [path=/abc][fd=4][size=4] [ERR] curl.cpp:CurlProgress(471): timeout now: 1449196391, curl_times[curl]: 1449196330, readwrite_timeout: 60 [ERR] curl.cpp:CurlProgress(471): timeout now: 1449196391, curl_times[curl]: 1449196330, readwrite_timeout: 60 ``` I mounted and uploaded a file to bucket successfully but if I use a tool like logstash to output a real-time file, its timeout and occur error This is my command: ``` /usr/local/bin/s3fs logstash /mnt/logstore -o sigv2,nocopyapi,url=http://s3.mydomain.net,passwd_file=/opt/s3fs-fuse/.passwd -d -f ```
Author
Owner

@higkoo commented on GitHub (Dec 5, 2015):

The Performance of s3fs-fuse is pool , cause this error maybe.
You can test perfmon by fio , compare with local disk.

<!-- gh-comment-id:162169065 --> @higkoo commented on GitHub (Dec 5, 2015): The Performance of s3fs-fuse is pool , cause this error maybe. You can test perfmon by fio , compare with local disk.
Author
Owner

@jindov commented on GitHub (Dec 7, 2015):

@higkoo: Can u explain clearly? I connect and upload successfully but cannot write real-time log file

<!-- gh-comment-id:162386151 --> @jindov commented on GitHub (Dec 7, 2015): @higkoo: Can u explain clearly? I connect and upload successfully but cannot write real-time log file
Author
Owner

@ggtakec commented on GitHub (Dec 20, 2015):

@jindov I think, because the timeout error is occurred and over retry count from your log.
So that you can try to set "retries" option as 5 or 10, it is set 2 as default.
Thanks in advance for your help.

<!-- gh-comment-id:166081110 --> @ggtakec commented on GitHub (Dec 20, 2015): @jindov I think, because the timeout error is occurred and over retry count from your log. So that you can try to set "retries" option as 5 or 10, it is set 2 as default. Thanks in advance for your help.
Author
Owner

@mjbhaskar commented on GitHub (Nov 18, 2016):

I am new to Ceph and S3. Could you please tell me how I can build the url? url=https://HOST:PORT/.. I used this format and used url=http://hostname:80/. With this as the URL and the s3fs command options like above, s3fs is trying to resolve url=http://my-new-bucket.hostname:80/ and it fails to resolve. For a non AWS S3 service like Ceph S3 how would we build the URL ?

Here my rados gateway server hostname : hostname
port : 80 ( because it is using civetweb and not apache )
bucket name is : my-new-bucket.

To add, my s3fs version : Amazon Simple Storage Service File System 1.74

My mount line

sudo /usr/local/bin/s3fs my-new-bucket /mnt/s3/ -o nocopyapi -o url=http://hostname:80/ -o passwd_file=~/.passwd-s3fs -f --debug -o curldbg -o f2 -o use_cache=/tmp/cache

My version of s3fs does not have -o sigv2

Thanks in advance

<!-- gh-comment-id:261585199 --> @mjbhaskar commented on GitHub (Nov 18, 2016): I am new to Ceph and S3. Could you please tell me how I can build the url? url=https://HOST:PORT/.. I used this format and used url=http://hostname:80/. With this as the URL and the s3fs command options like above, s3fs is trying to resolve url=http://my-new-bucket.hostname:80/ and it fails to resolve. For a non AWS S3 service like Ceph S3 how would we build the URL ? Here my rados gateway server hostname : hostname port : 80 ( because it is using civetweb and not apache ) bucket name is : my-new-bucket. To add, my s3fs version : Amazon Simple Storage Service File System 1.74 My mount line sudo /usr/local/bin/s3fs my-new-bucket /mnt/s3/ -o nocopyapi -o url=http://hostname:80/ -o passwd_file=~/.passwd-s3fs -f --debug -o curldbg -o f2 -o use_cache=/tmp/cache My version of s3fs does not have -o sigv2 Thanks in advance
Author
Owner

@gaul commented on GitHub (Nov 18, 2016):

You need to pass -o use_path_request_style for non-AWS implementations like Ceph. I encourage you to use the latest 1.80 release since we have fixed some data corruption bugs since 1.74

<!-- gh-comment-id:261616291 --> @gaul commented on GitHub (Nov 18, 2016): You need to pass `-o use_path_request_style` for non-AWS implementations like Ceph. I encourage you to use the latest 1.80 release since we have fixed some data corruption bugs since 1.74
Author
Owner

@mjbhaskar commented on GitHub (Nov 18, 2016):

Great. Thank you very much for the quick response, the new version 1.8 worked. I could mount and write a file into the bucket successfully.

<!-- gh-comment-id:261616889 --> @mjbhaskar commented on GitHub (Nov 18, 2016): Great. Thank you very much for the quick response, the new version 1.8 worked. I could mount and write a file into the bucket successfully.
Author
Owner

@f1-outsourcing commented on GitHub (May 6, 2018):

What about cephs multi tenant, you have to use urls like this, maybe we (you :)) can add option for this?

https://rgw.ceph.com:7480/tennant:bucket/file.txt

<!-- gh-comment-id:386866619 --> @f1-outsourcing commented on GitHub (May 6, 2018): What about cephs multi tenant, you have to use urls like this, maybe we (you :)) can add option for this? https://rgw.ceph.com:7480/tennant:bucket/file.txt
Author
Owner

@gaul commented on GitHub (Mar 17, 2019):

@jindov did you resolve your issue? Several users report success when mounting ceph via s3fs. If so could you please close this issue?

<!-- gh-comment-id:473666620 --> @gaul commented on GitHub (Mar 17, 2019): @jindov did you resolve your issue? Several users report success when mounting ceph via s3fs. If so could you please close this issue?
Author
Owner

@gaul commented on GitHub (Apr 9, 2019):

Closing due to inactivity. Please reopen if symptoms persist.

<!-- gh-comment-id:481187687 --> @gaul commented on GitHub (Apr 9, 2019): Closing due to inactivity. Please reopen if symptoms persist.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#159
No description provided.