{"id":22876844,"url":"https://github.com/jeancollas/openstack.netswiftclient","last_synced_at":"2025-05-06T21:23:54.983Z","repository":{"id":42716149,"uuid":"144619425","full_name":"JeanCollas/OpenStack.NetSwiftClient","owner":"JeanCollas","description":"Short library for consuming OpenStack Swift services in .net (tested on .NET Core and WPF) - tested on OVH services","archived":false,"fork":false,"pushed_at":"2022-12-08T14:47:05.000Z","size":1761,"stargazers_count":9,"open_issues_count":3,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-12-06T12:12:49.965Z","etag":null,"topics":["asp-net-core","aspnet-core","aspnetcore","csharp","netcore","netstandard","openstack","openstack-swift","swift","wpf"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JeanCollas.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}},"created_at":"2018-08-13T18:38:19.000Z","updated_at":"2024-04-25T23:23:25.000Z","dependencies_parsed_at":"2023-01-25T08:15:19.529Z","dependency_job_id":null,"html_url":"https://github.com/JeanCollas/OpenStack.NetSwiftClient","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanCollas%2FOpenStack.NetSwiftClient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanCollas%2FOpenStack.NetSwiftClient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanCollas%2FOpenStack.NetSwiftClient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JeanCollas%2FOpenStack.NetSwiftClient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JeanCollas","download_url":"https://codeload.github.com/JeanCollas/OpenStack.NetSwiftClient/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229559929,"owners_count":18092226,"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":["asp-net-core","aspnet-core","aspnetcore","csharp","netcore","netstandard","openstack","openstack-swift","swift","wpf"],"created_at":"2024-12-13T15:27:59.004Z","updated_at":"2024-12-13T15:27:59.473Z","avatar_url":"https://github.com/JeanCollas.png","language":"C#","readme":"# OpenStack .Net SwiftClient [![build](https://github.com/JeanCollas/OpenStack.NetSwiftClient/actions/workflows/dotnet.yml/badge.svg?branch=master)](https://github.com/JeanCollas/OpenStack.NetSwiftClient/actions/workflows/dotnet.yml) [![Nuget](https://img.shields.io/nuget/v/NetSwiftClient.Core)](https://www.nuget.org/packages/NetSwiftClient.Core/) [![Nuget](https://img.shields.io/nuget/dt/NetSwiftClient.Core)](https://www.nuget.org/packages/NetSwiftClient.Core/)\n\nA client developed in .Net Standard 2.0 to access OpenStack servers and perform the most frequent actions.\n\nA WPF client is included to demonstrate some of the most important functions, as well as a ASP.NET Core project.\n\nIt has been developed to address the lack of .Net client for the OVH object storage service.\n\n## Installation\nBefore using of the library [Nuget Package](https://www.nuget.org/packages/NetSwiftClient.Core/) must be installed.\n\n`Install-Package NetSwiftClient.Core` using Package Manager\n\n`dotnet add package NetSwiftClient.Core` using .NET CLI\n\n## Contribution\n\nFeel free to pull request, the client is not exhaustive and will get new features.\n\n## ASP.NET Core demo project\n\nJust launch the project, on first start, the site should ask for your authentication endpoint and credentials. \nThen you may browse your account.\n\nThe ASP.NET Core project demonstrates:\n- Authentication on OpenStack Identity server (the token is stored in an encrypted cookie)\n- List an account properties and its containers (in the library, account = object store)\n- Set temporary link keys to generate temporary links for objects\n- Create containers with all relevant metadata availables\n- List a container properties and its files\n- Upload files\n- Download files\n- Get files properties\n- Delete files\n- Create a temporary link to access a non-public file\n\nTODO:\n- Update container properties\n- Update file properties\n- Upload large files\n- Manage containers ACL\n\n### Login screen\n![ASP.NET Core client Openstack .Net Swift Client](https://github.com/JeanCollas/OpenStack.NetSwiftClient/raw/master/screenshots/asp-net-01.png)\n### Select account screen\n![ASP.NET Core client Openstack .Net Swift Client](https://github.com/JeanCollas/OpenStack.NetSwiftClient/raw/master/screenshots/asp-net-02.png)\n### Endpoint details, container creation \u0026 container selection\n![ASP.NET Core client Openstack .Net Swift Client](https://github.com/JeanCollas/OpenStack.NetSwiftClient/raw/master/screenshots/asp-net-03.png)\n### Container options\n![ASP.NET Core client Openstack .Net Swift Client](https://github.com/JeanCollas/OpenStack.NetSwiftClient/raw/master/screenshots/asp-net-04.png)\n### Container creation\n(too big so not included, see screenshot folder)\n### Container details, file upload \u0026 file management\n![ASP.NET Core client Openstack .Net Swift Client](https://github.com/JeanCollas/OpenStack.NetSwiftClient/raw/master/screenshots/asp-net-06.png)\n\n\n## WPF demo project\n\nAdd a `DemoContext.NotIncluded.cs` file on the WPF demo project, with the following code in order to test the project more easily:\n\n```csharp\n    namespace NetSwiftClient.Demo\n    {\n        public partial class DemoContext\n        {\n            public DemoContext()\n            {\n                _AuthUrl = \"https://auth.cloud.ovh.net/v3\";\n                _AuthName = \"XXXXX\";\n                _AuthPassword = \"YYYYY\";\n                _AuthDomain = \"Default\";\n                _ObjectStoreUrl = \"https://storage.sbg3.cloud.ovh.net/v1/AUTH_zzzz\"; \n            }\n        }\n    }\n```\n\nThe WPF project demonstrates:\n- Authentication on OpenStack Identity server (the token is stored in an encrypted cookie)\n- List an account properties and its containers (in the library, account = object store)\n- List a container properties and its files\n- Upload files\n- Download files\n![WPF client Openstack .Net Swift Client](https://github.com/JeanCollas/OpenStack.NetSwiftClient/raw/master/screenshots/wpf-client.png)\n\n## OVH\n\nOVH provides a object storage service based on the OpenStack API (OpenStack identity + swift).\n\nThey propose a cheap storage, with 3x replication, quite cheap and simple prices (0.01€/month/GB + free incoming + 0.01€/outgoing GB):\n- Static hosting =\u003e Store your entire static website, all files are public\n- Public container =\u003e Store your website media, all files are public (the difference with the static hosting is unclear)\n- Private container =\u003e Store your website media, files are not accessible to the public, but you can allow temporary links via the API\n- Cold storage =\u003e Storage is much cheaper, but incoming traffic is paid (0.002€/month/GB + 0.01€/incoming GB + 0.01€/outgoing GB)\n\nhttps://www.ovh.ie/public-cloud/storage/object-storage/\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeancollas%2Fopenstack.netswiftclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeancollas%2Fopenstack.netswiftclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeancollas%2Fopenstack.netswiftclient/lists"}