cancel
Showing results for 
Search instead for 
Did you mean: 

[SOLVED] Change FTP landing folder

tonystra
Champ in-the-making
Champ in-the-making

Hi,
I'm trying to change the default directory for FTP service.

My installation is Alfresco Community 5.2.0 


By default, when a user gets connected to Alfresco FTP, he lands in directory Alfresco, but i want a specific subfolder (i.e. /Alfresco/Sites/ftp-root/documentLibrary).


I've followed some tips suggested on the forum, but nothing changes. In alfresco documentation is specified that:

"Using the subsystem extension classpath mechanism, site specific customization of these default values can be placed in a Spring bean file. Create a file called custom-file-servers-context.xml and place it in a folder with the path <extension>\subsystems\fileServers\default\default\custom-file-servers-context.xml (note that the default\default part of the path is intentional)."

I've created custom-file-servers-context.xml with the following content:


<config evaluator="string-compare" condition="FTP Server">
      <rootDirectory>/Alfresco/Sites/ftp-root/documentLibrary</rootDirectory>
</config>

both in directory


/opt/alfresco/tomcat/shared/classes/alfresco/extension/fileServers/default/default/

and

/opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/fileServers/default/default/

It doesn't work. 

I'm not sure about the content of the file, because it is not documented anywhere what can be specified inside of it. I think that it must contain something like the content of
https://github.com/Alfresco/community-edition-old/blob/master/projects/repository/config/alfresco/su...


Any help isapreciated.

Thanks,
Antonio

1 ACCEPTED ANSWER

afaust
Legendary Innovator
Legendary Innovator

The context XML file cannot contain the content you mentioned. It is a Spring file, not an Alfresco Config file (those with the config + evaluator + condition blocks).

It is more appropriate to configure the root path (for all protocols, not just FTP, because CIFS/SMB + FTP share the config) via a custom.properties file and including the "filesystem.rootPath" property, which should have an XPath to the root folder.

View answer in original post

14 REPLIES 14

afaust
Legendary Innovator
Legendary Innovator

The context XML file cannot contain the content you mentioned. It is a Spring file, not an Alfresco Config file (those with the config + evaluator + condition blocks).

It is more appropriate to configure the root path (for all protocols, not just FTP, because CIFS/SMB + FTP share the config) via a custom.properties file and including the "filesystem.rootPath" property, which should have an XPath to the root folder.

tonystra
Champ in-the-making
Champ in-the-making

Hi Axel,

thanks for the quick reply.

When you say "It is more appropriate to configure the root path via a custom.properties file and including the "filesystem.rootPath" property, which should have an XPath to the root folder." you mean that this properties file must be defined somewhere. 

Where it should be defined? Do I still need to create the custom-file-servers-context.xml to  define this custom properties?

Thanks,

Antonio.

afaust
Legendary Innovator
Legendary Innovator

"Where it should be defined?" => in a file, let's call it "custom.properties" within that subsystem (basically were you already put the context XML file).

The whole reason of the properties file is that you do not need the XML file for any configuration that can already be done by setting a simple property. So no, you will not need that file when you use the property.

cesarista
World-Class Innovator
World-Class Innovator

For example, if your repository folder is /Inbox/FTP , in your alfresco-global.properties you should set something like:

protocols.rootPath=/app:company_home/cm:Inbox/cm:FTP

Regards.

--C.

tonystra
Champ in-the-making
Champ in-the-making

Hi Cesar,

thanks to you too.

As asked to Axel, also in this case, this property must be defined in the spring file?

In my case, it is /Alfresco/Sites/ftp-root/documentLibrary

The property should be:

protocols.rootPath=/app:company_home//cm:Alfresco/cmSmiley Frustratedites/cm:ftp-root/cm:documentLibrary

Am I right?

How the spring file should be defined?

Thanks for your help.

A.

cesarista
World-Class Innovator
World-Class Innovator

As commented by Axel, you do not need the spring file (you can ignore it), and you just need to add the cited property in $TOMCAT/shared/classes/alfresco-global.properties (and restart Alfresco).

Other option is to include it in a properties file for the correspoding extended filesystem subsystem. If you prefer this way you missed subsystems folder under the path:

/opt/alfresco/tomcat/shared/classes/alfresco/extension/subsystems/fileServers/default/default/

Regards.

--C.

mehe
Elite Collaborator
Elite Collaborator

...isn't WebDav and CIFS using the same root then? Didn't try it out

cesarista
World-Class Innovator
World-Class Innovator

For webdav you have this, instead:

system.webdav.rootPath=

Regards.

--C.

mehe
Elite Collaborator
Elite Collaborator

thanks Cesar 🙂