[PR #669] [MERGED] add IBM IAM authentication support #1594

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

📋 Pull Request Information

Original PR: https://github.com/s3fs-fuse/s3fs-fuse/pull/669
Author: @orozery
Created: 11/5/2017
Status: Merged
Merged: 11/23/2017
Merged by: @ggtakec

Base: masterHead: ibm_auth


📝 Commits (1)

  • bd4bc0e add support for IBM IAM authentication

📊 Changes

6 files changed (+211 additions, -47 deletions)

View changed files

📝 README.md (+6 -0)
📝 doc/man/s3fs.1 (+3 -0)
📝 src/curl.cpp (+137 -38)
📝 src/curl.h (+17 -2)
📝 src/s3fs.cpp (+43 -7)
📝 src/s3fs_util.cpp (+5 -0)

📄 Description

Details

IBM COS (Cloud Object Storage) supports OAuth 2.0 tokens as a mean of authentication, in addition to traditional AWS v2/v4 authentication.

This PR allows s3fs to use this new authentication mechanism.
The user implicitly selects this authentication by supplying a password file with the following format:

IBMServiceInstanceID=...
IBMAPIKey=...

Where the first (Service Instance ID) is only required when creating a bucket.

I chose to use this password file format, as a similar extension to the AWS password file format (which is already supported in s3fs):

AWSAccessKeyId=...
AWSSecretKey=...

I tested this PR using a real IBM COS account, and got all tests passing:

ubuntu@ubuntu:~/s3fs-fuse/test$ S3FS_CREDENTIALS_FILE=/home/ubuntu/s3fs-fuse/ibm-passwd TEST_BUCKET_1=ozeri-test-1 S3PROXY_BINARY="" S3_URL="https://s3.us-south.objectstorage.softlayer.net" ./small-integration-test.sh

...

PASS: test_append_file
PASS: test_truncate_file
PASS: test_truncate_empty_file
PASS: test_mv_file
PASS: test_mv_directory
PASS: test_redirects
PASS: test_mkdir_rmdir
PASS: test_chmod
PASS: test_chown
PASS: test_list
PASS: test_remove_nonempty_directory
PASS: test_multipart_upload
PASS: test_multipart_copy
PASS: test_special_characters
PASS: test_symlink
PASS: test_extended_attributes
PASS: test_mtime_file
PASS: test_rm_rf_dir
PASS: test_write_after_seek_ahead
SUMMARY for ./integration-test-main.sh: 19 tests passed. 0 tests failed.
./small-integration-test.sh: tests complete.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/s3fs-fuse/s3fs-fuse/pull/669 **Author:** [@orozery](https://github.com/orozery) **Created:** 11/5/2017 **Status:** ✅ Merged **Merged:** 11/23/2017 **Merged by:** [@ggtakec](https://github.com/ggtakec) **Base:** `master` ← **Head:** `ibm_auth` --- ### 📝 Commits (1) - [`bd4bc0e`](https://github.com/s3fs-fuse/s3fs-fuse/commit/bd4bc0e7f158e274de54bfc7935a8195aab6bc82) add support for IBM IAM authentication ### 📊 Changes **6 files changed** (+211 additions, -47 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+6 -0) 📝 `doc/man/s3fs.1` (+3 -0) 📝 `src/curl.cpp` (+137 -38) 📝 `src/curl.h` (+17 -2) 📝 `src/s3fs.cpp` (+43 -7) 📝 `src/s3fs_util.cpp` (+5 -0) </details> ### 📄 Description #### Details IBM COS (Cloud Object Storage) supports OAuth 2.0 tokens as a mean of authentication, in addition to traditional AWS v2/v4 authentication. This PR allows s3fs to use this new authentication mechanism. The user implicitly selects this authentication by supplying a password file with the following format: IBMServiceInstanceID=... IBMAPIKey=... Where the first (Service Instance ID) is only required when creating a bucket. I chose to use this password file format, as a similar extension to the AWS password file format (which is already supported in s3fs): AWSAccessKeyId=... AWSSecretKey=... I tested this PR using a real IBM COS account, and got all tests passing: ubuntu@ubuntu:~/s3fs-fuse/test$ S3FS_CREDENTIALS_FILE=/home/ubuntu/s3fs-fuse/ibm-passwd TEST_BUCKET_1=ozeri-test-1 S3PROXY_BINARY="" S3_URL="https://s3.us-south.objectstorage.softlayer.net" ./small-integration-test.sh ... PASS: test_append_file PASS: test_truncate_file PASS: test_truncate_empty_file PASS: test_mv_file PASS: test_mv_directory PASS: test_redirects PASS: test_mkdir_rmdir PASS: test_chmod PASS: test_chown PASS: test_list PASS: test_remove_nonempty_directory PASS: test_multipart_upload PASS: test_multipart_copy PASS: test_special_characters PASS: test_symlink PASS: test_extended_attributes PASS: test_mtime_file PASS: test_rm_rf_dir PASS: test_write_after_seek_ahead SUMMARY for ./integration-test-main.sh: 19 tests passed. 0 tests failed. ./small-integration-test.sh: tests complete. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-04 02:01:13 +03:00
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#1594
No description provided.