Syncing new files from ownCloud Server to Windows Desktop Client

I have a batch script running on the server that essentially creates a call detail record file once an audio file is received on the server from a mobile client. Once the call detail record (text file) is created and permissions are set to 777 and placed in /var/www/owncloud/data/admin/files/, the server does not sync the file with the client. How can I fix this?

Steps to reproduce

  1. Copy and Paste a file over to the server directory /var/www/owncloud/data/admin/files/
  2. Set permissions to allow any user to read/write
  3. Check to see if file has been synced to the ownCloud client
    (The files are syncing fine from mobile client --> server --> desktop client, just not from server -->client

Expected behaviour

Tell us what should happen
Call detail record should be transferred/synced to client

Actual behaviour

Tell us what happens instead
Absolutely nothing

Server configuration

Operating system:
Ubuntu 16.04

Web server:

Database:
MySQL

PHP version:
PHP7.0

ownCloud version: (see ownCloud admin page)
v10.2.0

Updated from an older ownCloud or fresh install:
Fresh Install

Where did you install ownCloud from:
Online

Signing status (ownCloud 9.0 and above):
?

Login as admin user into your ownCloud and access 
http://example.com/index.php/settings/integrity/failed 
paste the results into https://gist.github.com/ and puth the link here.

The content of config/config.php:

Log in to the web-UI with an administrator account and click on
'admin' -> 'Generate Config Report' -> 'Download ownCloud config report'
This report includes the config.php settings, the list of activated apps
and other details in a well sanitized form.

or 

If you have access to your command line run e.g.:
sudo -u www-data php occ config:list system
from within your ownCloud installation folder

*ATTENTION:* Do not post your config.php file in public as is. Please use one of the above
methods whenever possible. Both, the generated reports from the web-ui and from occ config:list
consistently remove sensitive data. You still may want to review the report before sending.
If done manually then it is critical for your own privacy to dilligently
remove *all* host names, passwords, usernames, salts and other credentials before posting.
You should assume that attackers find such information and will use them against your systems.

List of activated apps:

If you have access to your command line run e.g.:
sudo -u www-data php occ app:list
from within your ownCloud installation folder.

Are you using external storage, if yes which one: local/smb/sftp/…

Are you using encryption: yes/no

Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/…

LDAP configuration (delete this part if not used)

With access to your command line run e.g.:
sudo -u www-data php occ ldap:show-config
from within your ownCloud installation folder

Without access to your command line download the data/owncloud.db to your local
computer or access your SQL server remotely and run the select query:
SELECT * FROM `oc_appconfig` WHERE `appid` = 'user_ldap';


Eventually replace sensitive data as the name/IP-address of your LDAP server or groups.

Client configuration

Browser:

Operating system:
Windows 10

Logs

Web server error log

Insert your webserver log here

ownCloud log (data/owncloud.log)

Insert your ownCloud log here

Browser log

Insert your browser log here, this could for example include:

a) The javascript console log
b) The network log 
c) ...

@ojake13
You should upload them from the server through the web interface, not to copy them directly.

1 Like

Hey,

from what i have read in the past its strongly discouraged to manually edit / add any files within the data directory of ownCloud behinds ownClouds “back”. The suggestion to use the WebDAV interface of ownCloud, either via the Web GUI or via a WebDAV client might be the best solution which also avoids that you will face any issues in the future.

@ojake13

1 Like

the issue with that is that the files need to be created automatically and I can’t have any manual dropping/creating of files

There should be no problem to build in a curl call into your script, for “uploading” the result upon successful creation. This way, the files are immediately recognized by ownCloud.

1 Like

Can you help me out a bit further on this? Should I just upload the same created file (i.e. /var/www/owncloud/data/admin/files/ to the exact same path? I’ve tried using

curl -F 'data=@/var/www/owncloud/data/admin/files/nameOfCdr http://IPofServer

with no luck

@ojake13
You should keep the original somewhere else…

curl -u username:pass -T path_to_file/file_name “https://your_domain_or_ip/owncloud/remote.php/dav/files/username/file_name

You should replace the following with the real values:
username
pass
path_to_file
your_domain_or_ip
file_name

1 Like

My preferred way:

#!/bin/bash

echo 'Hello ownCloud!' > ./sample.txt
curl -n -T ./sample.txt http://localhost/owncloud/remote.php/webdav/sample/
rm ./sample.txt

Due to the -n, the credentials are used from the ~/.netrc file. The directory must exist.

machine  localhost
login    your_login
password your_pass
3 Likes

sample directory must exist on the owncloud server a priori.

Hey,

it seems there is even an FAQ on this topic which seems to exist since a few years:

This is a great info / solution. Maybe @dmitry has the permissions to edit this FAQ and add this example there?

Thanks, but that would be too much honor for such a simple thing! :wink:

I don’t have the ~/.netrc file with the credentials, do I just create the file manually? Also, I don’t understand how downloading a file using curl to a directory under webDAV will automatically sync the file with the data dir on the ownCloud server?

Then you can create one, or you can use

curl -u username:pass …

instead of the -n option.

1 Like