+ Start a Discussion
mikefmikef 

Large File Hosting in Sites

Hi:

 

I want to host large files but keep them "behind" the sites login. Currently there is a 5 mb file limit for storing the file in Salesforce.

We have a corporate web site, and our hosting company said we can host them there, but it's not secure.

 

Has anyone solved this problem? and did you do it with some custom php code on the web server, or with a third party file hosting company?

Or another way?

Thanks.

Best Answer chosen by Admin (Salesforce Developers) 
MrTikMrTik

We have implemented something similar to what you are trying to achieve. I have data files as big as 700 MB to few GB. I have hosted them on our ftp server and the links are generated in the following fashion.

 

<apex:panelGroup rendered="{!AND(ISPICKVAL($User.UserType,'Guest'), $Site.LoginEnabled)}"><apex:outputLink value="{!URLFOR('/SiteLogin')}">Your link</apex:outputLink></apex:panelGroup>  
<apex:outputLink value="http://your actual url here" rendered="{!NOT(ISPICKVAL($User.UserType,'Guest'))}">Your link</apex:outputLink>

 

Basically what is happening is the first link checks if the resource your users trying to access is  controlled.

If it is controlled and user is not logged in the first link will be rendered and that takes the users to login screen.

If the user is logged in then the second link is rendered which links to the actual content.

 

Hope this helps.

 

Let me know if you have any further questions on the approach.

 

-MrTik

All Answers

paul-lmipaul-lmi

there's no way past the SF limit, but you could store them on something like Amazon S3, and use a controller on SF to set up querystring authentication for the download.  I don't have any samples, but this has been done on many blogs outside of SF, so it's a proven practice that just needs to be replicated in Apex.

MrTikMrTik

We have implemented something similar to what you are trying to achieve. I have data files as big as 700 MB to few GB. I have hosted them on our ftp server and the links are generated in the following fashion.

 

<apex:panelGroup rendered="{!AND(ISPICKVAL($User.UserType,'Guest'), $Site.LoginEnabled)}"><apex:outputLink value="{!URLFOR('/SiteLogin')}">Your link</apex:outputLink></apex:panelGroup>  
<apex:outputLink value="http://your actual url here" rendered="{!NOT(ISPICKVAL($User.UserType,'Guest'))}">Your link</apex:outputLink>

 

Basically what is happening is the first link checks if the resource your users trying to access is  controlled.

If it is controlled and user is not logged in the first link will be rendered and that takes the users to login screen.

If the user is logged in then the second link is rendered which links to the actual content.

 

Hope this helps.

 

Let me know if you have any further questions on the approach.

 

-MrTik

This was selected as the best answer
dev401hasdev401has

Salesforce Limit is more than 5MB if you use Workspace/Content.

If anyone faces such problem and dont want to use FTP server or simply wants to upload a big document with more than 5 MB size then it can be done using content delivery.

I have done the same in my site:http://nbcuni.force.com/commops