Incremental online backup using Delphi - windows

I am trying to implement a new feature in our Delpi project that will help our users to make backups online on our servers, so I've used Indy FTP component to build a form that will upload / download the user files or folders
But I need to offer the ability to do incremental backups. Where our users can only upload ONLY 'new' differences to their files and folders. So for example if I have a text file with size 5 KB, and I've added text to it worth additional 2 KB, then the backup will just upload those extra 2 KB and NOT the whole 7 KB
So can someone please recommend any approach, algorithm to start with?
Thanks for your time
Note: we are using Delphi 7

There is a Microsoft Delta Compression API that will allow you to diff and patch, however I have investigated this route before and found that using rSync or robocopy is a much easier route - especially as it will be quite hard to apply the patch/changes from the server side unless you build your own custom FTP server.

Related

Distributing installer of Windows desktop application

I have an installer for my Windows app and it is quite big (>100 Mb).
I am also using ClickOnce deployment framework, so each time I issue an update all my users have to download the installer. We tried to use Amazon S3 to store the setup file, but it turns out that download speeds differ significantly across the globe, e.g. in US the download speed is several Mbps while in Europe or China it is less than 30Kbps, which is inapplicable.
However when I download most of the apps from internet, the download speed is usually good and doesn't depend this much on server location. How is this problem usually solved?
Big companies like Microsoft use a content delivery network which makes sure no matter where you come from a download server gets assigned to you which is as near as possible to your current location.

Need basic step by step instructions to get Flexpaper on to clients website

Greetings o knowledgeable ones,
I may have bitten off more than I can chew and this is the reason why I'm here!
I'm a beginner/intermediate front end coder and I have a client who has asked me to use Flexpaper to view their PDF catalogues on their website.
I know little about PHP and server side stuff (hell, I barely know front end code) and for the life of me I cant find a step by step instruction on how to upload the viewer and the PDFs on to the website/server.
I've read a couple of answers on the website that give me a glimpse into what I need to do but they seem to fall short of a complete answer.
I tried to using the 'Server Publishing' option in my local machine (using MAMP) but got stuck half way through when permissions where denied. Then found an answer eluding to the possibility of publishing to the web using the 'FlexPaper Desktop Publisher Zine' So I downloaded that and published a PDF and now I have a folder that was created on my machine but I'm a little lost from as to what to do next?
Some specific questions I have:
Do I upload the whole folder to the server and if I do what is the
code I have to include on a web page to access this Flexpaper PDF?
Do I need to upload any other applications/helper files to make the
viewer work on the website?
I have multiple PDFs(approx 15) I need to upload - is using the
'Desktop Publisher' to create each PDF the best way to do this? Or
should I use the 'Server Publishing' solution?
Why have I charged my client so little for so much work!?
Flexpaper seems like a great option for viewing PDFs online but it seems to be lacking in a beginning-to-end process of how to implement it onto websites. Unless I am missing something....
I am not a smart man.
Thanks and peace

InnoSetup - how to make setup.exe into 875kB? So that users download it faster and on download it will download another one?

Using InnoSetup i prepared my maininstaller.exe which is very large such as 90Mb when user downloads it, it take sometimes ages.
as a result often user ignores it and my setup is incomplete because of not user friendly.
Now i have compared Google Chrome/Canary web browsers concepts, they are also large in size, but they used 2 types of installer one is very tiny small size installer, which is just to download quickly and execute, to download the second large main installer, this method is more friendly to deploy large installation, and mostly accepted by many users.
Now, How can i do such (like Google Chrome web browser installer) with Innosetup? one first_setup.exe which is very tiny in size, so that user can quickly download it, but once that is executed it will go to internet and download my maininstaller.exe and make sure its downloaded correctly then execute it.
Is this possible? any idea.
Yes. You can build some sort of online installer which will e.g. download only components that the user chose during the setup wizard. For downloading component files or component setup files you can use e.g. the IDP plugin which I would prefer, or InnoTools Downloader.
Martijn Laan even considered to build in downloading feature for installed files in this issue.

Automatic download/upload

We are going to develop a client-server application with web interface which will store office documents on server.
When we use browser as a client we need to perform these three steps to edit a document:
download document to the local machine;
open it in office program and edit;
upload document to the server.
It is very inconvenient. Sometimes it is hard to find where a document was downloaded to, when we need to upload it. Customers will also forget to upload document after editing.
Is there any way or technology to upload document automatically?
Or just any ideas how to make this process more convenient.
Thanks in advance!
I would, suggest, if applicable to store all documents as HTML then allowing editing in a web page powered by CKEditor or a similar tool.
If your documents must be in another format, like Office formats, you might start thinking at Office 365, or use ActiveX controls in your web application, something I believe should be deprecated but works in small (better restricted) enterprise environments.
These are just a couple of ideas.

Image Uploading with Classic ASP

Hey I was wondering if there were any way to upload images in ASP? I am working on my school's server and I don't really know what is installed and what isn't I Googled a little and came up with "Persits.Upload.1" I tried to instantiate the object with this line:
Set Upload = Server.CreateObject("Persits.Upload.1")
It gave me this error,
Server object error 'ASP 0177 : 800401f3'
Server.CreateObject Failed
Am I to assume the component is not installed on the server and/or what should I do for uploading images?
Thanks
Sounds like it couldn't load the class, my ASP very rusty though.
That component is a commercial one, so unless someone has paid for it, you probably don't have it installed.
I have used free asp upload http://www.freeaspupload.net/ a few times, although it was a while a go, that might be a reasonably easy option for you.
File upload is a built in part of html and you can process it in asp without any custom compents. Here is some more information:
https://web.archive.org/web/20180312071127/http://www.4guysfromrolla.com:80/webtech/LearnMore/Upload.asp
This is part of the ASPJpeg library, which needs to be purchased (From Persits.com).
I have used this library to upload multiple items in the past.
To upload a single file you can use the <INPUT type=file name=filename>. This is just HTML though, but should work in all browsers
If it's for educational purposes it may be worth droping Persits an email to see if they will give you a free license.
They offer a 30-day free trial on their site.
Good luck
Will Rickards' link is good. You will also need permissions for the IUSR to create files in whatever directory you are uploading too.
IIS (6 I think?) comes with a limit of 200K for uploading files. Only the server admin can change it to allow more.
If you can get your schools server to install COM objects, there are a number of free uploading tools that make things very easy.
I have older classic ASP apps that use the Persits Software AspUpload component. It works great if you need to resize images, get image dimensions, etc., during the upload process.
It is a component you need to purchase and it needs to be installed on the Web server in order for it to work. It is not a core part of ASP.
by the way, you have a typo in your code, is
Server.CreateObject("Persist.Upload.1")
and not
Server.CreateObject("Persits.Upload.1")
I bet that if you correct this, the code will go smooth :D

Resources