SharePoint Online document library structure: folders vs. document libraries vs. many sites - sharepoint

I have more than 250,000 customers and growing. Each customers can have average 20 - 50 documents. There is no requirement for customers to access the document directly. An application will access the documents through REST APIs.
I need to store the documents in SharePoint online. There are choices for how to setup the SharePoint structure.
One document library under one site, and each customer will have an folder under the document library. This will result in large numbers of folders.
Each customer has its own document library under one site. This will result in large numbers of document libraries.
Each customer has its own site. This will result in large numbers of SharePoint sites.
Which way is better? Or there are some other better alternatives.

I would prefer option 2.
In sharepoint rest api, it has limitations when items in the library are more than 5000 items. So the first choice is not recommended.
And for the third option, you would need to connect to different sits in your code.

Related

Sharepoint 2013 Document last modified date code snippet

I am using sharepoint 2013. I have a page that does not show the document library itself, but has links to documents within it. Next to the link I would like to show the date the document was last modified for each file. See image
The text is not a link, just the PDF is a link to a file with in a document library. They are not all in the same library though, some are on other sharepoint 2013 sites, that I own as well.
Is this even possible? I have been searching for a few days, but have not found anything close to what I am looking to do. Most of what I am finding is related to getting the date in applications outside of sharepoint.
Yes it is possible depending upon the SharePoint api you use and the location of documents.
If using SharePoint JSOM, its possible if all the sites in which documents are stored are is same site collection.
If using SharePoint object model and using correct privileges, there's no limitation whether the documents are is same or different site collections (you may have to use different context objects though)

Can I restrict document types uploaded to a Sharepoint Online Document Set?

I have created a Document Set in SharePoint online and allowed the Document content type to the document set.
Is it possible to restrict the types of documents uploaded to the document set? I only want users to be able to upload Word 2007 documents and above and not any older versions of Word documents such as Word 2003.
Not sure if it is possible or not? I can't see of a way to restrict this from the content type or document set.
This is not possible using Out Of The Box (OOTB) SharePoint. I am assuming you don't have access to Central Administration.
Event handlers are a common approach but you need to a have good reason to incur the technical debt involved.
Here are some discussions of options on how you can do this if you really feel it is worth the risk and trouble.
https://sharepoint.stackexchange.com/questions/1039/how-to-restrict-a-document-library-to-a-specific-file-type-extension
https://social.technet.microsoft.com/Forums/windows/en-US/313c37ca-62cd-434f-9fe8-3eacc4044a63/can-we-restrict-specific-file-type-uploading-on-sharepoint-library?forum=sharepointgenerallegacy

List of documents in Entire Sharepoint Site

I am trying to get a list of all documents within my SharePoint Site, owner and date last modified.
It is a SharePoint 2010 Enterprise environment.
It's a site which has many subsites.
All solutions I have tried only allow me to get documents at that specific site level and not subsites.
I must admit, I can get the required information by querying the SQL DB directly but don't want to go down this path, as it's unsupported by MS
Any help would be appreciated.
You can get this information quite easy by using Powershell, you just need to iterate through all subsites and document libraries.
Take a look at these pages:
http://blog.falchionconsulting.com/index.php/2010/08/getting-an-inventory-of-all-sharepoint-documents-using-windows-powershell/
(This is almost exactly what you require, there are a few extra lines that you don't need).
http://www.sharepoint-journey.com/get-all-document-libraries-in-a-site-collection.html
https://sharepoint.stackexchange.com/questions/126397/powershell-get-a-list-of-all-the-document-libraries-for-a-web-application-incl
http://blogs.msdn.com/b/varun_malhotra/archive/2012/02/08/sharepoint-2010-powershell-download-all-files-in-document-library-to-network-share-file-share.aspx

Using Workflow to Copy Calendar Items Between Sites in Site Collection

I am having problems figuring out a calendar workflow and am beginning to think what I need cannot be done w/out using .NET. I want to copy calendar items up and down between sites.
The site collection structure is Office-->Division-->Branch. There are 5 divisions under the office and multiple branches under each division. Each is a separate site with its own own calendar.
I want to populate a calendar on one site and have the item pushed up or down the site chain to another site calendar. So I need to be able to promote calendar events up AND down between calendars on different sites within the same site collection. Also, I don’t need the whole item copied. I need all fields except one because each site has its own set of check box values for one of the fields.
All my research has indicated this can’t be done without programming and I do not have Visual Studio. I have heard BCS may be a solution but am not sure that we have it. We are using SharePoint 2010 Enterprise Server but many things are not available to me such as Data Sources. One recommendation I got was to have one site (office) and put everything below it as site pages. So divisions and branches would just be pages, not separate sites. However, this seems like it would get out of hand quickly. Any help would be greatly appreciated.
So it looks like my site structure is not optimal as SharePoint lists and libraries do not easily flow between sites. I will need to change the structure so all the divisions and branches are site pages, not sites. This way everything will live in the same site and it will be much easier to move data around via workflow.
In this case, I won't need to move any data between calendars because now I can use one calendar for the office, divisions and branches and create different views to show the required data.

Mysites like page that lists all doc libraries across all SharePoint sites?

We'd like to create a web page that will list all Document libraries across all sharePoint Sites for the user currently accessing the page. We'd also like to offer a all site search for the user. That is all sites they have access to.
We currently do not have Mysites enabled, nor do we want to.
Possilbe to code this?
All site search is easy. If you are using the non-free version of SharePoint 2007 or 2010, then that capability is baked into the product. Users can use the search scopes to search across all content in the SharePoint farm. It will automatically trim search results that users don't have access to.
As for you list of all document libraries, this would probably be too much effort to generate in real time for any non-trivial SharePoint environment. You are most likely going to have to gather this information ahead of time and then display the appropriate summary of the data in a WebPart of some other similar interface. Code to crawl every web application and every site and every sub-site and then every Document Library isn't hard. Actually it is very straightforward. What will be a little tricky is that you will need to collect ACL entries for each of these lists so that you can compare them to the current end user. The real trick is that the ACLs might contain SharePoint Group names and Active Directory group names instead of individual end user names. That will make your reporting task more difficult.

Resources