{"id":13582110,"url":"https://github.com/appscode/osm","last_synced_at":"2025-05-16T12:10:13.736Z","repository":{"id":12784570,"uuid":"71970004","full_name":"appscode/osm","owner":"appscode","description":"🚚 ☁️ Object Store Manipulator - curl for cloud storage","archived":false,"fork":false,"pushed_at":"2025-02-14T23:16:11.000Z","size":13877,"stargazers_count":167,"open_issues_count":13,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-12T08:38:31.677Z","etag":null,"topics":["cli","cloud-storage"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appscode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-10-26T05:40:38.000Z","updated_at":"2025-02-27T14:16:49.000Z","dependencies_parsed_at":"2024-08-17T05:31:02.593Z","dependency_job_id":"b09ad256-8e07-45a9-9bfd-378fe7132e5a","html_url":"https://github.com/appscode/osm","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appscode%2Fosm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appscode%2Fosm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appscode%2Fosm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appscode%2Fosm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appscode","download_url":"https://codeload.github.com/appscode/osm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254527100,"owners_count":22085919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cloud-storage"],"created_at":"2024-08-01T15:02:25.974Z","updated_at":"2025-05-16T12:10:13.710Z","avatar_url":"https://github.com/appscode.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"[![Go Report Card](https://goreportcard.com/badge/github.com/appscode/osm)](https://goreportcard.com/report/github.com/appscode/osm)\n[![Build Status](https://travis-ci.org/appscode/osm.svg?branch=master)](https://travis-ci.org/appscode/osm)\n[![codecov](https://codecov.io/gh/appscode/osm/branch/master/graph/badge.svg)](https://codecov.io/gh/appscode/osm)\n[![Docker Pulls](https://img.shields.io/docker/pulls/appscode/osm.svg)](https://hub.docker.com/r/appscode/osm/)\n[![Slack](https://slack.appscode.com/badge.svg)](https://slack.appscode.com)\n[![Twitter](https://img.shields.io/twitter/follow/appscodehq.svg?style=social\u0026logo=twitter\u0026label=Follow)](https://twitter.com/intent/follow?screen_name=AppsCodeHQ)\n\n# osm\nObject Store Manipulator (osm: pronounced like `awesome`) - `curl` for cloud storage services. 🙌 `osm` can create \u0026 delete buckets and upload, download \u0026 delete files from buckets for AWS S3, AWS S3 compatible other storage services(i.e. Minio), DigitalOcean Spaces, Google Cloud Storage, Microsoft Azure storage and OpenStack Swift. Its single binary can be easily packaged instead of official python based clis inside Docker images.\n\n## Install OSM\nYou can download and install a pre-built binary:\n```console\n# Linux amd 64-bit:\nwget -O osm https://cdn.appscode.com/binaries/osm/0.9.1/osm-linux-amd64 \\\n  \u0026\u0026 chmod +x osm \\\n  \u0026\u0026 sudo mv osm /usr/local/bin/\n\n# Linux 386 32-bit:\nwget -O osm https://cdn.appscode.com/binaries/osm/0.9.1/osm-linux-386 \\\n  \u0026\u0026 chmod +x osm \\\n  \u0026\u0026 sudo mv osm /usr/local/bin/\n\n# Mac 64-bit\nwget -O osm https://cdn.appscode.com/binaries/osm/0.9.1/osm-darwin-amd64 \\\n  \u0026\u0026 chmod +x osm \\\n  \u0026\u0026 sudo mv osm /usr/local/bin/\n\n# Mac 32-bit\nwget -O osm https://cdn.appscode.com/binaries/osm/0.9.1/osm-darwin-386 \\\n  \u0026\u0026 chmod +x osm \\\n  \u0026\u0026 sudo mv osm /usr/local/bin/\n```\n\nTo build from source, run: `go get -u github.com/appscode/osm`\n\n## Usage\n```console\nosm [command] [flags]\nosm [command]\n\nAvailable Commands:\n  config      OSM configuration\n  help        Help about any command\n  lc          List containers\n  ls          List items in a container\n  mc          Make container\n  pull        Pull item from container\n  push        Push item to container\n  rc          Remove container\n  rm          Remove item from container\n  stat        Stat item from container\n  version     Prints binary version number.\n\nFlags:\n      --alsologtostderr                  log to standard error as well as files\n      --enable-analytics                 Send usage events to Google Analytics (default true)\n  -h, --help                             help for osm\n      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)\n      --log_dir string                   If non-empty, write log files in this directory\n      --logtostderr                      log to standard error instead of files\n      --osmconfig string                 Path to osm config (default \"$HOME/.osm/config\")\n      --stderrthreshold severity         logs at or above this threshold go to stderr (default 2)\n  -v, --v Level                          log level for V logs\n      --vmodule moduleSpec               comma-separated list of pattern=N settings for file-filtered logging\n\nUse \"osm [command] --help\" for more information about a command.\n\n```\n\n### OSM Configuration\n`osm` stores credentials necessary to connect to a cloud storage provider in YAML format in `$HOME/.osm/config` file.\nThis allows providing commands one time for multiple subsequent operations with a cloud provider.\n```console\n# AWS S3:\nosm config set-context osm-s3 --provider=s3 --s3.access_key_id=\u003ckey_id\u003e --s3.secret_key=\u003csecret_key\u003e --s3.region=us-east-1\n\n# TLS secure Minio server\nosm config set-context osm-minio --provider=s3 --s3.access_key_id=\u003cminio_access_key\u003e --s3.secret_key=\u003cminio_secret_key\u003e --s3.endpoint=\u003cminio_server_address\u003e --s3.cacert_file=\u003croot_ca_file_path\u003e\n\n# DigitalOcean Spaces:\nosm config set-context osm-do --provider=s3 --s3.access_key_id=\u003ckey_id\u003e --s3.secret_key=\u003csecret_key\u003e --s3.endpoint=nyc3.digitaloceanspaces.com\n\n# Google Cloud Storage:\nosm config set-context osm-gs --provider=google --google.json_key_path=\u003cpath_sa_file\u003e --google.project_id=\u003cmy_project\u003e\n\n# Microsoft Azure ARM Storage:\nosm config set-context osm-az --provider=azure --azure.account=\u003cstorage_ac\u003e --azure.key=\u003ckey\u003e\n\n# Local Filesystem\nosm config set-context osm-local --provider=local --local.path=/tmp/stow\n```\n\n### Bucket Operations\n```console\n# create bucket\nosm mc mybucket\n\n# upload file to bucket\nosm push -c mybucket ~/Downloads/appscode.pdf a/b/c.pdf\n\n# print uploaded file attributes\nosm stat -c mybucket a/b/c.pdf\n\n# download file from bucket\nosm pull -c mybucket a/b/c.pdf /tmp/d.pdf\n\n# list bucket\nosm ls mybucket\n\n# remove file from bucket\nosm rm -c mybucket a/b/c.pdf\n\n# remove bucket (use -f to delete any files inside)\nosm rc -f mybucket\n```\n\n## Contribution guidelines\nWant to help improve OSM? Please start [here](/CONTRIBUTING.md).\n\n## Support\nIf you have any questions, [file an issue](https://github.com/appscode/osm/issues/new) or talk to us on our community [Slack ](https://slack.appscode.com) channel.\n\n---\n\n**The osm binary collects anonymous usage statistics to help us learn how the software is being used and how we can improve it.\nTo disable stats collection, run the operator with the flag** `--enable-analytics=false`.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappscode%2Fosm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappscode%2Fosm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappscode%2Fosm/lists"}