Hmmm, kind of like a remote wget … Actually,they’d tend to be done in batches, so I’d send a list of names to be copied.
Is there a super-simple way for a php script handle one single POST request that only does one thing, without a ton of overhead needed for an entire REST-based service with multiple endpoints? Wget would probably be overkill assuming the php script can just issue an HTTP file download request. -David Schwartz > On May 15, 2023, at 9:28 AM, Bob Elzer via PLUG-discuss > <[email protected]> wrote: > > What about setting up a CGI script on the Linux server that you pass the URL > to, it could do a wget to retrieve the file to the directory you specify. > > > On Sun, May 14, 2023, 8:50 PM David Schwartz via PLUG-discuss > <[email protected] <mailto:[email protected]>> > wrote: > I’m building a web app that uses a 3rd-party text-to-speech (TTS) service; > it's one of many things supported by a REST service I’ve created that runs on > a Windows host somewhere. This service sends requests to the TTS service and > gets back a URL to an MP3 file on their server. These files are only there > for about an hour before they get deleted. > > My service sends back those URLs to the client, which is typically running on > a mobile device. They can be consumed without any problem at the moment, > telling me the TTS provider has disable CORS restrictions. > > Many of the requests that will be made are unique and will never be > duplicated, so the fact that their vocalizations (the MP3 files) get deleted > after an hour is not a problem. > > However, some of them (20-30%) are very likely to be duplicated, and it’s > worth saving them somewhere so they can be re-used in the future. (The TTS > service charges based on characters sent to them, and by reusing the MP3 > files over time, a lot of cost savings can accrue.) > > In my mind, I need to set up a way to cache these files somewhere. > > I don’t want to save them on the server that’s hosting the REST service > because of the bandwidth costs. > > I’ve tried a few different things and it turns out this brings up CORS issues. > > I have my own web host and found out I can add a line to an htaccess file > that will allow the files to be accessed. I can’t do that with hosted > services like FileStack (which has other limitations as well). > > It looks like there’s a way to do it with Dropbox by changing the URL from > this form: > > > https://www.dropbox.com/s/x12nrtdi08ipo352/sample-abc.mp3?dl=0 > <https://www.dropbox.com/s/x12nrtdi08ipo352/sample-abc.mp3?dl=0> > > > to this form: > > > https://dl.dropboxusercontent.com/s/x12nrtdi08ipo352/sample-abc.mp3 > <https://dl.dropboxusercontent.com/s/x12nrtdi08ipo352/sample-abc.mp3> > > So, this brings up the question of HOW TO MOVE THE FILES INTO THE CACHE? > > Here’s my biggest constraint: I can access the files for up to an hour by > using the TTS server’s URLs. Within that time-frame, they need to have been > moved over to the host that’s doing the caching. After that, the code will > quickly check to see if the requests have already been processed and are in > the cache; if so, it will return a URL to the cached file, saving a needless > encoding request. > > If I use Dropbox, I can simply set up the Dropbox app on the server hosting > my REST service, and save the files to the Dropbox file tree. They’ll be > copied into Dropbox automatically. But this means I’ll have a modest cost > associated with maintaining a Dropbox account for this specific purpose > ($130/yr). > > > Alternatively, I can copy the files from the REST server over to my own host. > > What I’d like to ask this group is … what’s the best way to accomplish that? > > My host is currently on a shared reseller hosting plan, but as this > scales-up, I’ll move it to a dedicated host. > > It’s running cPanel on a Linux server, probably running CentOS. > > I can set up cron jobs, and I’m told I can get some limited access to a shell > (rsh probably) if needed. > > This is the same host I tested with the htaccess file to allow the files to > be accessed without CORS issues. > > I’m wondering if it’s best to have the REST server copy the files from the > TTS site to the other host somehow (eg, with FTP)? > > Or use something like rsync on the host to sweep files from the TTS site into > the host, driven by a list provided by the REST service? > > Can I run rsync on a Windows host that copies files from server-A to server-B? > > Or maybe you guys have some better ideas? I’d love to hear some pros and cons > about any solutions that might work. > > Note that I have not considered a cloud service other than FileStack (which > I’ve ruled-out using). Regardless, the files will still need to be copied > from the TTS provider’s site to the cache host before they get deleted. THIS > process is what I’m wanting to resolve. > > -David Schwartz > > > > > --------------------------------------------------- > PLUG-discuss mailing list: [email protected] > <mailto:[email protected]> > To subscribe, unsubscribe, or to change your mail settings: > https://lists.phxlinux.org/mailman/listinfo/plug-discuss > <https://lists.phxlinux.org/mailman/listinfo/plug-discuss> > --------------------------------------------------- > PLUG-discuss mailing list: [email protected] > To subscribe, unsubscribe, or to change your mail settings: > https://lists.phxlinux.org/mailman/listinfo/plug-discuss
--------------------------------------------------- PLUG-discuss mailing list: [email protected] To subscribe, unsubscribe, or to change your mail settings: https://lists.phxlinux.org/mailman/listinfo/plug-discuss
