Jaya icon indicating copy to clipboard operation
Jaya copied to clipboard

S3 support for Jaya

Open giorgiozoppi opened this issue 4 years ago • 16 comments

I might interested in contributing adding the support for S3 Buckets in Jaya.Which actions should I do?

giorgiozoppi avatar May 15 '20 11:05 giorgiozoppi

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.

waliarubal avatar May 17 '20 21:05 waliarubal

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.AppBuilderBase1.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

giorgiozoppi avatar May 22 '20 08:05 giorgiozoppi

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.

giorgiozoppi avatar May 22 '20 08:05 giorgiozoppi

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.

waliarubal avatar May 23 '20 04:05 waliarubal

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.

giorgiozoppi avatar May 23 '20 14:05 giorgiozoppi

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.

waliarubal avatar May 23 '20 14:05 waliarubal

i am trying to figure out this, please feel free to open a slack channel. for further discussion

giorgiozoppi avatar May 23 '20 14:05 giorgiozoppi

@giorgiozoppi we can discuss more on Gitter Chat.

waliarubal avatar May 23 '20 20:05 waliarubal

@waliarubal the pull request for DI is ready

giorgiozoppi avatar May 24 '20 11:05 giorgiozoppi

i started working on this using GoogleDrive as model, but it is a bit different. I added the skeleton and dependencies.

giorgiozoppi avatar May 27 '20 20:05 giorgiozoppi

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.

waliarubal avatar May 27 '20 21:05 waliarubal

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 avatar May 27 '20 22:05 waliarubal

@waliarubal i will provide you access to amazon and credential for testing as soon as the feature is finished.

giorgiozoppi avatar May 30 '20 13:05 giorgiozoppi

Okay, nice.

waliarubal avatar May 30 '20 14:05 waliarubal

@giorgiozoppi I was wondering if you got chance to work on completing S3 support?

waliarubal avatar Jun 05 '20 09:06 waliarubal

Not yet. Busy week. I need to add few things and testing. I will do this night.

giorgiozoppi avatar Jun 05 '20 09:06 giorgiozoppi