file sharing in the 21st century
-
@black3dynamite said in file sharing in the 21st century:
@Emad-R said in file sharing in the 21st century:
@black3dynamite said in file sharing in the 21st century:
We mainly use NC as a replacement for folder redirection w/ offline at work and its been working great. Each users root folders like Desktop and Documents are moved into the Nextcloud directory and then use symbolic link (junction points) to point to each folder in the Nextcloud directory.
Noice, so you make Junction point on (C:)\Users\Username or only on Desktop and Documents and stuff like that.
What if that fucker starting to save files on the (D:) and gave you a D or you dont make any other partition
I make junction points for the root directories under
C:\Users\john.doe\
except for AppData directory and then create a Local Files Only or Personal Files injohn.doe
directory so they can keep their crap there. No other partitions.Assuming the folder structure exists within the Nextcloud folder, this is what I just came up with today.
Obviously, the data in these directories needs to already have been moved to the appropriate Nextcloud folders.
LinkNextcloud.ps1
has to be executed in an elevated PS sessions so i have it prompt for the username.# Save file as LinkNextcloud.ps1 $User = Read-Host "Enter UserName" Remove-Item -Path "C:\Users\$User\Desktop" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Desktop" -Target "C:\Users\$User\Nextcloud\Desktop" -Force Remove-Item -Path "C:\Users\$User\Documents" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Documents" -Target "C:\Users\$User\Nextcloud\Documents" -Force Remove-Item -Path "C:\Users\$User\Downloads" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Downloads" -Target "C:\Users\$User\Nextcloud\Downloads" -Force Remove-Item -Path "C:\Users\$User\Favorites" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Favorites" -Target "C:\Users\$User\Nextcloud\Favorites" -Force Remove-Item -Path "C:\Users\$User\Music" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Music" -Target "C:\Users\$User\Nextcloud\Music" -Force Remove-Item -Path "C:\Users\$User\Pictures" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Pictures" -Target "C:\Users\$User\Nextcloud\Pictures" -Force Remove-Item -Path "C:\Users\$User\Videos" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Videos" -Target "C:\Users\$User\Nextcloud\Videos" -Force
Definitely room for improvement.. Just pulled this out of my ass today to resolve an issue.
-
@JaredBusch said in file sharing in the 21st century:
@black3dynamite said in file sharing in the 21st century:
@Emad-R said in file sharing in the 21st century:
@black3dynamite said in file sharing in the 21st century:
We mainly use NC as a replacement for folder redirection w/ offline at work and its been working great. Each users root folders like Desktop and Documents are moved into the Nextcloud directory and then use symbolic link (junction points) to point to each folder in the Nextcloud directory.
Noice, so you make Junction point on (C:)\Users\Username or only on Desktop and Documents and stuff like that.
What if that fucker starting to save files on the (D:) and gave you a D or you dont make any other partition
I make junction points for the root directories under
C:\Users\john.doe\
except for AppData directory and then create a Local Files Only or Personal Files injohn.doe
directory so they can keep their crap there. No other partitions.Assuming the folder structure exists within the Nextcloud folder, this is what I just came up with today.
Obviously, the data in these directories needs to already have been moved to the appropriate Nextcloud folders.
LinkNextcloud.ps1
has to be executed in an elevated PS sessions so i have it prompt for the username.# Save file as LinkNextcloud.ps1 $User = Read-Host "Enter UserName" Remove-Item -Path "C:\Users\$User\Desktop" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Desktop" -Target "C:\Users\$User\Nextcloud\Desktop" -Force Remove-Item -Path "C:\Users\$User\Documents" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Documents" -Target "C:\Users\$User\Nextcloud\Documents" -Force Remove-Item -Path "C:\Users\$User\Downloads" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Downloads" -Target "C:\Users\$User\Nextcloud\Downloads" -Force Remove-Item -Path "C:\Users\$User\Favorites" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Favorites" -Target "C:\Users\$User\Nextcloud\Favorites" -Force Remove-Item -Path "C:\Users\$User\Music" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Music" -Target "C:\Users\$User\Nextcloud\Music" -Force Remove-Item -Path "C:\Users\$User\Pictures" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Pictures" -Target "C:\Users\$User\Nextcloud\Pictures" -Force Remove-Item -Path "C:\Users\$User\Videos" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$User" -Name "Videos" -Target "C:\Users\$User\Nextcloud\Videos" -Force
Definitely room for improvement.. Just pulled this out of my ass today to resolve an issue.
I got the idea from this site but with my own needs. I still have to clean up my script.
https://helgeklein.com/blog/2015/02/manual-folder-redirection-with-symbolic-links/ -
Its near the bottom of the page that says "Symbolic Link Folder Redirection Script"
-
@black3dynamite said in file sharing in the 21st century:
Its near the bottom of the page that says "Symbolic Link Folder Redirection Script"
Will read that..
My script updated, not tested yet.
$UserName = Read-Host "Enter UserName" $CreateNextCloudFolder = Read-Host "Is this a new Nextcloud user Y/N?" $FolderList = "Desktop,Documents,Downloads,Favorites,Music,Pictures,Videos" $FoldderArray = $FolderList.split(",") ForEach($Folder in $FolderArray) { If($CreateNextCloudFolder -like "y") { New-Item -ItemType Directory -Path "C:\Users\$UserName\Nextcloud\$Folder" -Force } Remove-Item -Path "C:\Users\$UserName\$Folder" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$UserName" -Name "$Folder" -Target "C:\Users\$UserName\Nextcloud\$Folder" -Force }
-
in your for statement - why not attempt to copy any data that might exist to the NC location before simply deleting the old folder - I realize there shouldn't be anything there yet, but you never know.
-
@JaredBusch said in file sharing in the 21st century:
@black3dynamite said in file sharing in the 21st century:
Its near the bottom of the page that says "Symbolic Link Folder Redirection Script"
Will read that..
My script updated, not tested yet.
$UserName = Read-Host "Enter UserName" $CreateNextCloudFolder = Read-Host "Is this a new Nextcloud user Y/N?" $FolderList = "Desktop,Documents,Downloads,Favorites,Music,Pictures,Videos" $FoldderArray = $FolderList.split(",") ForEach($Folder in $FolderArray) { If($CreateNextCloudFolder -like "y") { New-Item -ItemType Directory -Path "C:\Users\$UserName\Nextcloud\$Folder" -Force } Remove-Item -Path "C:\Users\$UserName\$Folder" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$UserName" -Name "$Folder" -Target "C:\Users\$UserName\Nextcloud\$Folder" -Force }
I never thought of using PowerShell native commands to create the Junction point.
I've been usingcmd.exe /c mklink /J
within the powershell script to create the them. -
@black3dynamite said in file sharing in the 21st century:
@JaredBusch said in file sharing in the 21st century:
@black3dynamite said in file sharing in the 21st century:
Its near the bottom of the page that says "Symbolic Link Folder Redirection Script"
Will read that..
My script updated, not tested yet.
$UserName = Read-Host "Enter UserName" $CreateNextCloudFolder = Read-Host "Is this a new Nextcloud user Y/N?" $FolderList = "Desktop,Documents,Downloads,Favorites,Music,Pictures,Videos" $FoldderArray = $FolderList.split(",") ForEach($Folder in $FolderArray) { If($CreateNextCloudFolder -like "y") { New-Item -ItemType Directory -Path "C:\Users\$UserName\Nextcloud\$Folder" -Force } Remove-Item -Path "C:\Users\$UserName\$Folder" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$UserName" -Name "$Folder" -Target "C:\Users\$UserName\Nextcloud\$Folder" -Force }
I never thought of using PowerShell native commands to create the Junction point.
I've been usingcmd.exe /c mklink /J
within the powershell script to create the them.In my PS scripts, I try not to ever include any non-PS.
-
@Obsolesce said in file sharing in the 21st century:
@black3dynamite said in file sharing in the 21st century:
@JaredBusch said in file sharing in the 21st century:
@black3dynamite said in file sharing in the 21st century:
Its near the bottom of the page that says "Symbolic Link Folder Redirection Script"
Will read that..
My script updated, not tested yet.
$UserName = Read-Host "Enter UserName" $CreateNextCloudFolder = Read-Host "Is this a new Nextcloud user Y/N?" $FolderList = "Desktop,Documents,Downloads,Favorites,Music,Pictures,Videos" $FoldderArray = $FolderList.split(",") ForEach($Folder in $FolderArray) { If($CreateNextCloudFolder -like "y") { New-Item -ItemType Directory -Path "C:\Users\$UserName\Nextcloud\$Folder" -Force } Remove-Item -Path "C:\Users\$UserName\$Folder" -Force -Confirm New-Item -ItemType Junction -Path "C:\Users\$UserName" -Name "$Folder" -Target "C:\Users\$UserName\Nextcloud\$Folder" -Force }
I never thought of using PowerShell native commands to create the Junction point.
I've been usingcmd.exe /c mklink /J
within the powershell script to create the them.In my PS scripts, I try not to ever include any non-PS.
Its a habit that I'm working on.
-
thanks for all the responses guys, there has been a lot of good info that I have not thought of.
@Obsolesce said in file sharing in the 21st century:
@Donahue said in file sharing in the 21st century:
I mentioned this in another thread, but I currently have a file server which is a 2012R2 VM sharing roughly 6TB of data. I am looking into replacing this with something more modern, so far I am checking out Nextcloud.
But having read most of the threads on ML dealing with nextcloud, and especially reading about experiences such as @guyinpv had here and here, I think we need to take a hard look at how we share files now, and why we do it the way we do it, and maybe find other methods and philosophies that we could implement for a better overall experience.
In a lot of ways, I can relate to @guyinpv, as his setup sounds a lot like mine. We currently have our VM, with a single share that is applied as a mapped drive using GPO. Inside this share is a number of root level folders, basically one for each department. Inside each of these are the typical level of nested subfolders and files. All of the first couple levels of folders from the share root were created by me, and users are locked out of being able to make changes until they are a few layers deep into their department.
Based on my research and conversations I have had, I think we have a very narrow idea of what a file share should be like, because all we know is how windows operates. As far as we treat the system, there is no one that "owns" any of the files, even though windows records an owner. No one has any sort of personal or private files that they "share" with other users. The files exist in the share that we created, and both users likely have equal permissions to said file.
I would like to expand my horizons, because I don't feel like I fully understand how other companies might use something like NC. If we are to take full advantage of what NC offers, it may require a fundamental shift in thinking by us and I want to get started on that now.
How do other people use NC? Specifically, how are folder structures or other structures, and how does that relate to user accounts? What does the anatomy of a cloud based solution look like when done well? I think I would like to use the sync client in windows, but I have only just started to play around with an online demo.
I think it's best to instead figure out what the business needs and and goals are for file service needs, and then find the appropriate technology to meet those... instead of picking out a cool featurful technology first, and the seeing if you can squeeze the businesses needs into it.
For me, it's not so much a reason to try and use cool features, its a way to catch up my thinking of how this should be done, instead of sticking to the same old rut. What the business needs is a way to not be penalized so much for having half of my users being forced to access so much stuff across the WAN. Perhaps the issue is sometimes bandwidth, and other times it is simply latency (probably the latter more often), but having a local copy that can sync can take advantage of local speed. Most of our current machines, and everything I will deploy from here on out will have SSD's, probably PCIe M.2's.
Another need is a way to share files with third parties, which NC can do, and standard file shares cannot.
-
In file sharing, latency typically trumps bandwidth for normal files.
-
@scottalanmiller said in file sharing in the 21st century:
In file sharing, latency typically trumps bandwidth for normal files.
Making users wait, is never going to go over well.
-
I think I realized that recently. It makes @JaredBusch's comments about why I needed a 1Gb WAN make more sense. I probably needed improved latency at least as much as more bandwidth. I think I had a lot of extra backend issues that were causing more latency than just network latency too. Resolving those may have been enough, but at this point we have what we have.
-
Back on this topic. With NC, If I want to make this open to the web, what do I need to do? Is it just a matter of registering a domain somewhere, get external DNS to point to it, and then port forward from my router to the NC server?
-
@Donahue said in file sharing in the 21st century:
Back on this topic. With NC, If I want to make this open to the web, what do I need to do? Is it just a matter of registering a domain somewhere, get external DNS to point to it, and then port forward from my router to the NC server?
Pretty much. You will need to update the
config.php
with the domain name, but yeah, that is it. -
@Donahue said in file sharing in the 21st century:
Back on this topic. With NC, If I want to make this open to the web, what do I need to do? Is it just a matter of registering a domain somewhere, get external DNS to point to it, and then port forward from my router to the NC server?
If you don't care about the domain, you can even just use an IP address. Silly, but not technically needed.
-
@scottalanmiller said in file sharing in the 21st century:
@Donahue said in file sharing in the 21st century:
Back on this topic. With NC, If I want to make this open to the web, what do I need to do? Is it just a matter of registering a domain somewhere, get external DNS to point to it, and then port forward from my router to the NC server?
If you don't care about the domain, you can even just use an IP address. Silly, but not technically needed.
Not to mention that I cannot imagine his company does not own some kind of domain already. So all he has to do is setup DNS.
I mean we know they are messed up, but I hope not enough that they use gmail or something.
-
@JaredBusch said in file sharing in the 21st century:
@scottalanmiller said in file sharing in the 21st century:
@Donahue said in file sharing in the 21st century:
Back on this topic. With NC, If I want to make this open to the web, what do I need to do? Is it just a matter of registering a domain somewhere, get external DNS to point to it, and then port forward from my router to the NC server?
If you don't care about the domain, you can even just use an IP address. Silly, but not technically needed.
Not to mention that I cannot imagine his company does not own some kind of domain already. So all he has to do is setup DNS.
I mean we know they are messed up, but I hope not enough that they use gmail or something.
OH, it's amazing how many are....
-
We own gemequipment.com, but I have not been part of that whole deal so I dont know where we stand on that. If you look at our website, it's atrocious. I have no idea where it is hosted or anything. If I setup a domain for NC, I would likely pick something else so as to not mix the two.
-
@Donahue said in file sharing in the 21st century:
We own gemequipment.com, but I have not been part of that whole deal so I dont know where we stand on that. If you look at our website, it's atrocious. I have no idea where it is hosted or anything. If I setup a domain for NC, I would likely pick something else so as to not mix the two.
they must have updated the site recently, it's not quite as bad as it was. Still, not my department as of now.
-
@Donahue said in file sharing in the 21st century:
We own gemequipment.com, but I have not been part of that whole deal so I dont know where we stand on that. If you look at our website, it's atrocious. I have no idea where it is hosted or anything. If I setup a domain for NC, I would likely pick something else so as to not mix the two.
One has nothing to do with the other though. Assuming your company's name has something to do with gem equipment, why get a whole new domain just for NC?
You can find out who's hosting your public DNS and ask them to add a record for NC pointing to the IP of your firewall that you're forwarding into your NC box.