{"id":27786284,"url":"https://github.com/clever/pathio","last_synced_at":"2025-04-30T15:59:00.093Z","repository":{"id":20207714,"uuid":"23479193","full_name":"Clever/pathio","owner":"Clever","description":"go library for transparently writing to and reading from different types of paths (supports stdout, s3, and fs)","archived":false,"fork":false,"pushed_at":"2025-04-24T00:23:36.000Z","size":331,"stargazers_count":14,"open_issues_count":2,"forks_count":3,"subscribers_count":65,"default_branch":"master","last_synced_at":"2025-04-24T01:25:43.902Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Clever.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2014-08-29T22:11:25.000Z","updated_at":"2025-04-24T00:23:41.000Z","dependencies_parsed_at":"2025-04-24T01:33:48.944Z","dependency_job_id":null,"html_url":"https://github.com/Clever/pathio","commit_stats":{"total_commits":87,"total_committers":24,"mean_commits":3.625,"dds":0.6666666666666667,"last_synced_commit":"c8beb72a7a66b136fa015b3714f6b579bad9d5aa"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clever%2Fpathio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clever%2Fpathio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clever%2Fpathio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clever%2Fpathio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Clever","download_url":"https://codeload.github.com/Clever/pathio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251737800,"owners_count":21635676,"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":[],"created_at":"2025-04-30T15:58:59.423Z","updated_at":"2025-04-30T15:59:00.078Z","avatar_url":"https://github.com/Clever.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pathio\n\n[![GoDoc](https://godoc.org/github.com/Clever/pathio/v4?status.svg)](https://godoc.org/github.com/Clever/pathio/v4)\n\n--\n    import \"github.com/Clever/pathio/v4\"\n\nPackage pathio is a package that allows writing to and reading from different\ntypes of paths transparently. It supports two types of paths:\n\n    1. Local file paths\n    2. S3 File Paths (s3://bucket/key)\n\nNote that using s3 paths requires setting two environment variables\n\n    1. AWS_SECRET_ACCESS_KEY\n    2. AWS_ACCESS_KEY_ID\n\n## Usage\nPathio has a very easy to use interface, with 5 main functions:\n\n```\nimport \"github.com/Clever/pathio/v4\"\nvar err error\n```\n\n### ListFiles\n```\n// func ListFiles(path string) ([]string, error)\nfiles, err = pathio.ListFiles(\"s3://bucket/my/key\") // s3\nfiles, err = pathio.ListFiles(\"/home/me\")           // local\n```\n\n### Write / WriteReader\n```\n// func Write(path string, input []byte) error\ntoWrite := []byte(\"hello world\\n\")\nerr = pathio.Write(\"s3://bucket/my/key\", toWrite)   // s3\nerr = pathio.Write(\"/home/me/hello_world\", toWrite) // local\n\n// func WriteReader(path string, input io.ReadSeeker) error\ntoWriteReader, err := os.Open(\"test.txt\") // this implements Read and Seek\nerr = pathio.WriteReader(\"s3://bucket/my/key\", toWriteReader)   // s3\nerr = pathio.WriteReader(\"/home/me/hello_world\", toWriteReader) // local\n```\n\n### Read\n```\n// func Reader(path string) (rc io.ReadCloser, err error)\nreader, err = pathio.Reader(\"s3://bucket/key/to/read\") // s3\nreader, err = pathio.Reader(\"/home/me/file/to/read\")   // local\n```\n\n### Delete\n```\n// func Delete(path string) error\nerr = pathio.Delete(\"s3://bucket/key/to/read\") // s3\nerr = pathio.Delete(\"/home/me/file/to/read\")   // local\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclever%2Fpathio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclever%2Fpathio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclever%2Fpathio/lists"}