Support

Akeeba Backup for Joomla!

#42316 Backup on google drive

Posted in ‘Akeeba Backup for Joomla! 4 & 5’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

Joomla! version
5.3.4
PHP version
8.3.25
Akeeba Backup version
10.0.6 pro

Latest post by nicholas on Thursday, 02 October 2025 10:21 CDT

galamarco

Good morning,
This is my first time configuring Akeeba Backup Pro. I configured the APIs on Google Cloud, imported the callback URL, and enabled Google Drive in Joomla. But how do I tell the system that I want the backup to go to Drive and not the server?

I saw this screen in the guide, but where is it? I can't find it...
https://www.akeeba.com/media/com_docimport/akeeba-backup-joomla/images/postprocessing_google_drive.png

P.S. I had the free Akeeba Backup, and I downloaded and installed the Pro version by entering the download key. Is there anything else I can do?

Regards
Marco

nicholas
Akeeba Staff
Manager

This is a big clue:

P.S. I had the free Akeeba Backup, and I downloaded and installed the Pro version by entering the download key. Is there anything else I can do?

Just entering the Download Key won't turn the Core version into Pro. You need to install the Pro version's ZIP package, twice in a row, without uninstalling the extension before or in between. Joomla! will overwrite the Core files with the Pro files and you will be able to see the Post-processing options in the Configuration page.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

galamarco

Hello,

of course, that's why I told you I'd already downloaded and installed the pro version.

Anyway, I managed to find a video tutorial that instructs me to select "Google Drive" under "Post-processing engine." After that, I logged in, but even though I have "Drive File Stream" or "Shared Drives" in my account, the drop-down menu under "Drive" only says "Google Drive (personal)." How do I show the others? I've attached a screenshot.

Regards
Marco

nicholas
Akeeba Staff
Manager

You have set your OAuth2 helper is "Provided by Akeeba Ltd". As noted in the documentation:

When you are using the OAuth2 Helper provided by Akeeba Ltd you will NOT be able to use drives and folders shared with you by other Google Drive users. This limitations has to do with how Google implements those things. Access to shared drives and folders requires a very wide API scope which is marked as Restricted. Using that scope in a published application which can be used by any Google customer requires an expensive, very long, and hands-on assessment process every year. This was impossible for us to comply with, as it would have interfered with our ability to literally do anything else during the 2-4 weeks every year we'd be engaged with the assessment.

If you want to access shared drives and folders you MUST use a Custom OAuth2 helper. The difference here is that you will be creating an API application which only you will be using. It will be inaccessible to other Google customers. As a result, you can use the wide API scope marked as restricted without having to go through the expensive and time consuming yearly assessment. The idea is that in case of non-compliance the only person you'd be hacking is yourself, i.e. there is no risk, therefore no need for an assessment by a third party.

The instructions to create the application are documented here: https://www.akeeba.com/documentation/akeeba-backup-joomla/custom-oauth2-googledrive.html  

That said, I am not sure if what you are showing me is team drives or directories shared with you. In the latter case, you can simply enable the "Upload to 'shared with me' folders" option and type the name of the folder as the first part of the Directory.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

galamarco

Hi,

As previously shared, I've already created the app on Google Cloud and entered the parameters, but despite this, no Drive File Stream is displayed.

I attach the configuration screenshots in Akeeba and Google Cloud.

After saving, I would expect the drop-down menu to show something more than "Google Drive (personal)." Even "reloading the list of drives" doesn't change anything.
I can confirm that the previously shared files are Team Files, not Drives Shared with me.

nicholas
Akeeba Staff
Manager

First of all, do keep in mind that the instructions in the documentation are not just tested by me, but by other clients who have successfully set this up. I know for a fact that the instructions and the code works. What I am trying to do here is figure out what you are doing wrong.

Yes, I have read what you wrote, BUT I am also taking your screenshots into account AND what you are not explicitly telling me. I don't care if it sounds reductive to you. I am here to catch the problems you have not caught. That's my job. Making a bad assumption that you have done something when you actually have not means I have failed at my job. So, yeah, some of what I am saying you have already done and is implied in what you have already written. However, if you had done everything that's implied in what you have written you would not be here asking for support, right? You have definitely missed something. What is it? We're trying to figure it out. Even if what I tell you sounds repetitive and annoying, do check it. There is a good reason I have check it.

Case in point, the OAuth2 helper. You implied you are using the Custom helper. If you would please open Screenshot_339.png you will see at the very top that the OAuth2 Helper is set to "Provided by Akeeba Ltd". I caught it, and you fixed it as per Screenshot_342.png where it's now changed to Custom. If I had not made that point, even though you argue about it, you'd still be trying to use the wrong OAuth2 helper which does not support team drives at all! It would be an exercise in futility. So, yeah, even when I am being reductive it does help. You have already proven the point for me.

There are a few more things I cannot establish from just a screenshot and that you have not explicitly stated.

After setting up the configuration I see in Screenshot_342.png you must click on Save in the toolbar before clicking on Reload The List Of Drives. You only told me you clicked on "Reload The List Of Drives", you didn't tell me if you saved first. If you don't save, Akeeba Backup will try to use the wrong helper, the wrong endpoints, or the wrong tokens. The authentication will fail, and no team drives will be listed.

Moreover, listing the team drives will only work if you have added the .../auth/drive scope to your application as per the documentation. This scope MUST be added manually. It's not selected by default. It is the necessary scope for listing drives other than My Drive. That's why I have explicitly documented it. Do check it. If you had forgotten to give this scope and you just added it, you MUST re-authenticate and copy the new access and refresh tokens to the configuration page. Then you need to save, and then click on Reload The List Of Drives.

Likewise, if you are reusing the tokens from when you were using the Provided By Akeeba Ltd oauth2 helper, it will not work. You have to re-authenticate and copy the new access and refresh tokens to the configuration page. Then you need to save, and then click on Reload The List Of Drives.

Finally, the obvious point: make sure you have write access to the team drives. If you can't write to the drives you might not even see them listed.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

galamarco

Hi,
Forgive me, but the machine translations are probably worse than what I meant. I have no doubt that I'm wrong and that there's something I didn't do that I should do, which is why, in addition to the guide, I contacted support.
So we agree that there's something I didn't do. I need to configure Akeeba Backup on about 50 sites, and I'd like to do it as best as possible. Initial attempts, on multiple sites, didn't yield good results, and I'm trying to figure out what needs to be done to make everything work properly.

Regarding your description, I followed the instructions and did the same thing on three sites in parallel. Only one of them gave excellent results, allowing me to choose the Drive File Stream to save the backups. This clearly shows that the system works, and I'm the one who needs to set the parameters correctly. In the other two cases, things didn't go smoothly. I noticed that changing the PHP version of that site to PHP 8.4 (alt-php84) resolved some server-to-Drive upload issues.
I made a backup on one site, and the upload to Drive failed. Starting it manually gave me "cURL is not enabled." Changing PHP to 8.4 (from 8.1) fixed the issue, and the upload was successful.

On another site (where it doesn't display the Drive File Stream folders), it gave me a different error message reminding me to enter the download key.
Perhaps it would be better to display an error if I configure all of Drive but the download key isn't present. It would be helpful if it were immediately visible when saving, so I could fix whatever was preventing Drive File Stream from uploading. So, in this case, the error was that the download key was missing.

I haven't configured it yet, but I'm wondering: do I need a cron job or something similar to run backups automatically?

Thank you very much, and please forgive Google Translate's imprecise and awkward translations.

Regards
Marco

nicholas
Akeeba Staff
Manager

No worries! I just wanted to let you know of my approach here. It helps when both of us are on the same page, knowing what to expect from each other. We are both on the same page, that's good!

I noticed that changing the PHP version of that site to PHP 8.4 (alt-php84) resolved some server-to-Drive upload issues.
I made a backup on one site, and the upload to Drive failed. Starting it manually gave me "cURL is not enabled." Changing PHP to 8.4 (from 8.1) fixed the issue, and the upload was successful.

Yep. You need to enable the PHP cURL extension in every PHP version you are using on your server (along with OpenSSL, as per https://www.akeeba.com/support/akeeba-backup/42317-your-server-does-not-support-encryption-of-your-configuration-settings-1.html). The PHP cURL extension is how PHP can talk to HTTP-based APIs.

Pro tip: Once you do this on one PHP version on one site, note down which PHP extensions you have enabled. You can then reproduce this on every other PHP version and site you have. Every time you upgrade PHP you'll have to remember to do that. You will forget; we all do. But knowing that it needs to be done will help you realise very quickly what you forgot and go ahead and do it!

On another site (where it doesn't display the Drive File Stream folders), it gave me a different error message reminding me to enter the download key.

Yes, that's correct. You need a download key to use this feature.

Perhaps it would be better to display an error if I configure all of Drive but the download key isn't present.

You are shown the message about the download key before you click on the Configure page, in the Control Panel page. It also has instructions on how to do it.

I understand what you are saying, and we did in have plenty of warnings on every relevant page between 2006 and 2017. Unfortunately, it turns out that people can only take so much information. Beyond a certain point they just ignore all the messages. They ended up submitting support requests about things which were literally on their screen. We did a thorough user study in 2017 and came up with the concept of minimal messages, everything else being in the documentation. This made users happier, reduced support requests, and overall worked better than having messages everywhere on the screen.

Yes, in some cases it can be annoying and confusing. But here's the thing. You did figure it out. If you had twenty messages on the screen you'd have missed the right message among the noise and you'd have no idea what to do next. You'd be overwhelmed. You'd come here even more unhappy. It's really weird when I put it this way, right? And yet, that's how humans work. Too much information is worse than no information.

I haven't configured it yet, but I'm wondering: do I need a cron job or something similar to run backups automatically?

Yes. You need something to trigger the backup and keep it going until it's done. It can be a CRON job, a Joomla Scheduled Task (as long as you have a CRON job to tell Joomla to trigger its scheduled tasks...), a tool such as Akeeba Panopticon or Akeeba Remote CLI (running on a CRON job), using a third party service such as WebCRON (which basically runs its own CRON jobs to trigger URLs), or a third party service compatible with Akeeba Backup (which, again, works by running its own CRON jobs). It's CRON jobs all the way down.

If you can run a CRON job on your server, do that. It's faster, and it costs you nothing. It's the preferred method, hands down.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!