Copy link to clipboard
Copied
When you open an Indesign file it creates a .idlk file that stops other users from opening the same file, when it's open by other users. Works great on a server.
On All cloud services we have tried, including Creative Cloud, that file is ignored and two people can easily open the same page at the same time.
Does anyone know of a cloud service that allows the .idlk file to exist?
Copy link to clipboard
Copied
If it’s that straight forward I wonder why DropBox or Adobe haven’t done it? The variables seem overwelming to me, but it would be a very attractive feature for any cloud sharing service.
Copy link to clipboard
Copied
Think of user A on the east coast opening an ID file, making some edits, which creates the lock file, closing his laptop without saving, and calling it a night. Does that mean user B on the west coast can’t edit until user A wakes up and closes the file?
Copy link to clipboard
Copied
I made a quick test with my colleague and it worked for me as expected; will test it more when real work begins later this month.
Copy link to clipboard
Copied
It seems like the problem with a lock file on any service that relies on file sync’ing—CC, Dropbox, Google Drive—would be the sync latency, which could be micro seconds when all the users have fast broadband, but days if a user has no internet connection. So the method I suggested of moving the file to the desktop as a form of checkout depends on all of the parties having a fast connection, which is never guaranteed.
A lock file or even a text file indicating a the current user would also have the latency problem, which is why I’m guessing CC doesn’t sync the .idlk file.
Copy link to clipboard
Copied
Copy link to clipboard
Copied
I agree that latency means you can't use these lock files reliably with late-synching services. What is needed is something in InDesign that communicates with a server (not a file server), a server that keeps track of what is opened and who has it open. I'd be surprised if there wasn't already a plug-in solution to this, aimed at the medium-sized prepress operation, especially those in periodicals where seconds count and lost adverts can ruin the bottom line.
Copy link to clipboard
Copied
What is needed is something in InDesign that communicates with a server (not a file server), a server that keeps track of what is opened and who has it open.
But there still would need to be an uniterrupted internet connection for that to work reliably. A colaborator could be off line, but there could also be temporary hardware problems at either end—a client is restarting her modem, the client’s IP is down, there is a power outage, the Cloud Server is down for maintenance...
Copy link to clipboard
Copied
"But there still would need to be an uniterrupted internet connection for that to work reliably. A colaborator could be off line, but there could also be temporary hardware problems at either end—a client is restarting her modem, the client’s IP is down, there is a power outage, the Cloud Server is down for maintenance..."
I agree you need this if you are just tracking the normal uploads/downloads. But you can replace these by having the check/in system do the uploads and downloads too; this is essential really.
So, when the wifi comes back the attempt to upload it tries to check it in, and finds someone has overridden the lock. At that point it could do any of a number of things, and might involve the user, or move it to a holding folder...
Copy link to clipboard
Copied
So, when the wifi comes back the attempt to upload it tries to check it in, and finds someone has overridden the lock. At that point it could do any of a number of things, and might involve the user, or move it to a holding folder...
That doesn’t seem much different than the conflicted copy file strategy that both DropBox and CC use now—by the time the offline collaborator comes back online there might be two different copies. Currently they both get saved with different names—myfile.indd and myfile (Conflicted copy from userA on thedate).indd
Copy link to clipboard
Copied
The main difference would be auditability/traceability. You'd know when things happened, who did them. You'd know who released the lock, and when. A big company couldn't function with shared editing without this kind of system. The problem is that smaller companies drift into this territory without addressing the naeed.
Copy link to clipboard
Copied
We have or better had the same problem. Thanks to @Kasyan Servetsky's script, which we modified to our needs and added a new function, we were able to fix this issue on our Synology Drive. This solution will or should work on other cloud services as well. Not only Dropbox.
Here is the link to our GitHub repository for the script https://github.com/t3n/indesign-prevent-multiple-opens
This script has to be installed in the Startup Scripts folder! Otherwise it won't work as expected.
Again thanks to Kasyan for his awesome Dropbox solution!
Copy link to clipboard
Copied
Hi @Max Schmidt , whats the difference with the original script from Kasyan, and the one you modified? I see you write that you added a new function?
Copy link to clipboard
Copied
It looks like it works with Dropbox.
Adobe CC ignores .idlk files and does not sync them. This makes very difficult work with InCopy workflows as InDesign users cannot know whether an InCopy user that works with synched files in the cloud is locking an assignment or not.
But with Dropbox, it works.
Copy link to clipboard
Copied
If you encounter any issues with Dropbox (or any other filestore/cloudprovider) you could also use the script from GitHub and modify the folder to your Cloudproviders local folder on your machine.
Copy link to clipboard
Copied
Max, we've been using your prevent-multiple-opens.jsx script and it works well on our Synology Drive sync between two printing plants. Thanks to you and Kasyan Servetsky for your efforts.
Now, we've run into an issue, however. When one opens a file and does a "Save As" a different file, the .txt file lingers and never gets deleted. It's obvious why this happens, as the file is no longer the same file.
I wonder about creating another event listener and function for "Save," and, depending on the file name, delete the older .txt file and create a new one.
I don't know much about JavaScript, only BASH, C, and Assembly. Old school stuff. Now, I did write a 2,100 line Applescript for production use at our print shop. That was a learning curve I didn't really enjoy.