API for Synchronizing / indexing system files

Hi,
there is an API to Synchronizing system files on datasource?
I saw on Swagger page and i haven’t find.

I would like to call API to run this command:
cells data sync --service=pydio.grpc.data.sync.datasource_name --path=/

Thanks in advance,
Regards,
S

Hello @crouch766,

You can do this by running a job, which will synchronize a datasource,

  • method: PUT
  • endpoint: /a/jobs/user/datasource-resync
  • body:
{"JobName":"datasource-resync","JsonParameters":"{\"dsName\":\"pydiods1\"}"}

.

Work like a charm!

Thanks for your support!

@zayn How did you know to use the JobName “datasource-resync” in the URL as well as the body? Is there documentation on what other JobNames (and their parameters) are available to use?

This endpoint did work well for me too, but I’d like to pass in a Path parameter so we can target a specific directory for a quick resync on what could be a very large datasource. Any advice or docs you can point me to in order to add a Path value?

Thanks!

Hello @bnmatrx,

you can find the job names, by either checking the job code (on github) or opening the browser console when you are checking the resync job of any datasource.

You can only target a datasource and if the path that you want to be indexed is under that datasource it will be applied to it.

Thanks @zayn,

It looks like I’ve found the available JobNames here.

I think I was confused by the --path option on the cells binary. I may have misunderstood how to use it and was attempting to call it via the REST interface.

$./cells data sync --help

Trigger a re-indexation of a given service. 
This can be currently used for datasource indexes and search engine.

Usage:
  ./cells-enterprise data sync [flags]

Examples:
For example, to trigger the re-indexation of "pydiods1" datasource, target the "sync" service associated to the datasource : 

1) by name:
	./cells data sync --datasource=pydiods1

2) by service name:
	./cells data sync --service=pydio.grpc.data.sync.pydiods1 

Else to refresh the search engine entirely:
	./cells data sync --service=pydio.grpc.search --path=/

Flags:
  --datasource string   Name of datasource to resync
  -h, --help            help for sync
  --path string         Path to resync (default "/")
  --service string      If no datasource name is passed, use the complete service name to resync

My understanding now is that --path is only used when targeting the --service to identify the datasource to resync, rather than the specific folder path to resync.

Does this mean that we can only, and must always, resync the entire datasource each time, and that targeting a specific path is not an option? (Which is totally ok, I just want to make sure I understand completely.)

Jumping in : as of now, we cannot partially resync a datasource (on a given path), as we the sync would detect false deletions for files moved out of this path to another path…
We should probably implement the feature, as you may be sure that files under a given path will never be moved around other paths… I don’t know if i’m clear :slight_smile:
charles