Jaya
Jaya copied to clipboard
S3 support for Jaya
I might interested in contributing adding the support for S3 Buckets in Jaya.Which actions should I do?
Hi @giorgiozoppi ,
Its very nice to know that smart people like yourself have come up to support this project in development respect. I call all the external service support as "File System Provider" (you can call it a plugin), so if you are interested in implementing a provider for Amazon S#, check an existing implementation for the same. I would suggest looking at support for Google Drive here.
You will have to implement IProviderService interface in your plugin project. As of now their are not many methods in the interface, just bare enough to provide browsing support. I will be adding a couple of those in near future. You might need to add dependency references for development in JayaUI's project file.
Let me know if you need any kind of assistance. Looking forward to hearing from you very soon.
Ok. I tried finally in my pause. It looks that it doens't support yet netcore 3.1. Any hint to fix this?
/usr/share/dotnet/dotnet /repo/opensource/Jaya/src/Jaya.Ui/bin/Debug/netcoreapp3.1/Jaya.Ui.dll
Unhandled exception. TinyIoC.TinyIoCResolutionException: Unable to resolve type: Jaya.Shared.Services.IService
at TinyIoC.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) in /repo/opensource/Jaya/src/Jaya.Shared/TinyIoC.cs:line 3809
at TinyIoC.TinyIoCContainer.Resolve(Type resolveType, String name) in /repo/opensource/Jaya/src/Jaya.Shared/TinyIoC.cs:line 1857
at TinyIoC.TinyIoCContainer.Resolve[ResolveType](String name) in /repo/opensource/Jaya/src/Jaya.Shared/TinyIoC.cs:line 1978
at Jaya.Shared.ServiceLocator.GetServiceT in /repo/opensource/Jaya/src/Jaya.Shared/ServiceLocator.cs:line 133
at Jaya.Ui.App.OnFrameworkInitializationCompleted() in /repo/opensource/Jaya/src/Jaya.Ui/App.xaml.cs:line 26
at Avalonia.Controls.AppBuilderBase1.Setup() at Avalonia.Controls.AppBuilderBase
1.SetupWithLifetime(IApplicationLifetime lifetime)
at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode)
at Jaya.Ui.Program.Main(String[] args) in /repo/opensource/Jaya/src/Jaya.Ui/Program.cs:line 22
As well unit tests are missing. it would improve a lot the project. Is it possible branch for .NET Core 3 and adapt your version for just .net core 3. If you support me, we can improve it a lot and doing a os replacement for cyberduck/expandrive.
So the project does support .NET core 3.1, in fact it targets that. The issue you are seeing is because of I was trying out different IoC containers for it and my work is in the middle and it's broken at the moment. I will fix the IoC stuff and message you so this error will go away and you can continue on improving the project.
Well you are correct @giorgiozoppi , unit tests will improve it to a higher extent but reason being I am a single developer working on this project so I tend to focus more time on development. Now good people like yourself are joining the effort, I would be more than happy to expand the areas of development.
We don't need a TinyIoC container, .NET Core has its own dependency injection. https://andrewlock.net/using-dependency-injection-in-a-net-core-console-application/ I start learn the code.
Thanks @giorgiozoppi for the link. We can stick to using internal DI of .NET core without using any other DI infrastructure. Earlier I was using MEF for the same. Please go ahead and research on how to use the internal DI to load assemblies and register their types on runtime since it's a pluggable application so we need to make sure all the plugins load automatically from a directory. This will ease in plugin and application update without manual code writing for registering plugins.
i am trying to figure out this, please feel free to open a slack channel. for further discussion
@giorgiozoppi we can discuss more on Gitter Chat.
@waliarubal the pull request for DI is ready
i started working on this using GoogleDrive as model, but it is a bit different. I added the skeleton and dependencies.
Nice, looking forward to your implementation. I am not having any S3 account to test the same so completely relying on your good work.
Apart from this I had to do some adjustments to code you had put in for DI to make it work with plugins. Maybe someday I will sit and write down architectural documents for the project. FYI, I am currently working on VM Locator also which will allow dynamic binding of VMs and constructor DI.
Just to mention, when you are working on an issue make sure you move it to "In Progress" column in project management and to "Done" column when its over and closed. This shall provide more insight to other contributors working on the project just in case to prevent two people picking up the same issue to work upon simultaneously.
@waliarubal i will provide you access to amazon and credential for testing as soon as the feature is finished.
Okay, nice.
@giorgiozoppi I was wondering if you got chance to work on completing S3 support?
Not yet. Busy week. I need to add few things and testing. I will do this night.