[GH-ISSUE #878] Question: How to setup archivebox to save files in Google drive? #3562

Closed
opened 2026-03-14 23:29:49 +03:00 by kerem · 1 comment
Owner

Originally created by @adityajpatil on GitHub (Oct 16, 2021).
Original GitHub issue: https://github.com/ArchiveBox/ArchiveBox/issues/878

I am trying to setup archivebox to save files in Google Drive. I mounted Google Drive using rclone.

Initially I tried to use docker and docker-compose, but with both cases, docker seems to try to overwrite google drive directory.

docker-compose run archivebox init --setup
Error response from daemon: error while creating mount source path '/home/aditya/GDrive/archivebox/data': mkdir /home/aditya/GDrive: file exists
docker run -i -v $PWD:/data archivebox/archivebox
docker: Error response from daemon: error while creating mount source path '/home/aditya/GDrive/archivebox': mkdir /home/aditya/GDrive: file exists.

I also tried with the pip package, but that gives some sqlite error.

 archivebox init
[i] [2021-10-16 08:58:48] ArchiveBox v0.6.2: archivebox init
    > /home/aditya/GDrive/archivebox

[+] Initializing a new ArchiveBox v0.6.2 collection...
----------------------------------------------------------------------

[+] Building archive folder structure...
    + ./archive, ./sources, ./logs...
    + ./ArchiveBox.conf...

[+] Building main SQL index and running initial migrations...
Traceback (most recent call last):
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
  File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 200, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 207, in get_new_connection
    conn = Database.connect(**conn_params)
sqlite3.OperationalError: disk I/O error

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/aditya/.local/bin/archivebox", line 8, in <module>
    sys.exit(main())
  File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/cli/__init__.py", line 140, in main
    run_subcommand(
  File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/cli/__init__.py", line 80, in run_subcommand
    module.main(args=subcommand_args, stdin=stdin, pwd=pwd)    # type: ignore
  File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/cli/archivebox_init.py", line 43, in main
    init(
  File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/util.py", line 114, in typechecked_function
    return func(*args, **kwargs)
  File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/main.py", line 328, in init
    for migration_line in apply_migrations(out_dir):
  File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/util.py", line 114, in typechecked_function
    return func(*args, **kwargs)
  File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/index/sql.py", line 137, in apply_migrations
    call_command("makemigrations", interactive=False, stdout=null)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/core/management/__init__.py", line 168, in call_command
    return command.execute(*args, **defaults)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/core/management/base.py", line 85, in wrapped
    res = handle_func(*args, **kwargs)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/core/management/commands/makemigrations.py", line 101, in handle
    loader.check_consistent_history(connection)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/migrations/loader.py", line 290, in check_consistent_history
    applied = recorder.applied_migrations()
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/migrations/recorder.py", line 77, in applied_migrations
    if self.has_table():
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/migrations/recorder.py", line 55, in has_table
    with self.connection.cursor() as cursor:
  File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 259, in cursor
    return self._cursor()
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 235, in _cursor
    self.ensure_connection()
  File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
  File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 200, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 207, in get_new_connection
    conn = Database.connect(**conn_params)
django.db.utils.OperationalError: disk I/O error

Originally created by @adityajpatil on GitHub (Oct 16, 2021). Original GitHub issue: https://github.com/ArchiveBox/ArchiveBox/issues/878 I am trying to setup archivebox to save files in Google Drive. I mounted Google Drive using rclone. Initially I tried to use docker and docker-compose, but with both cases, docker seems to try to overwrite google drive directory. ``` docker-compose run archivebox init --setup Error response from daemon: error while creating mount source path '/home/aditya/GDrive/archivebox/data': mkdir /home/aditya/GDrive: file exists ``` ``` docker run -i -v $PWD:/data archivebox/archivebox docker: Error response from daemon: error while creating mount source path '/home/aditya/GDrive/archivebox': mkdir /home/aditya/GDrive: file exists. ``` I also tried with the pip package, but that gives some sqlite error. ``` archivebox init [i] [2021-10-16 08:58:48] ArchiveBox v0.6.2: archivebox init > /home/aditya/GDrive/archivebox [+] Initializing a new ArchiveBox v0.6.2 collection... ---------------------------------------------------------------------- [+] Building archive folder structure... + ./archive, ./sources, ./logs... + ./ArchiveBox.conf... [+] Building main SQL index and running initial migrations... Traceback (most recent call last): File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection self.connect() File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 200, in connect self.connection = self.get_new_connection(conn_params) File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 207, in get_new_connection conn = Database.connect(**conn_params) sqlite3.OperationalError: disk I/O error The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/aditya/.local/bin/archivebox", line 8, in <module> sys.exit(main()) File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/cli/__init__.py", line 140, in main run_subcommand( File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/cli/__init__.py", line 80, in run_subcommand module.main(args=subcommand_args, stdin=stdin, pwd=pwd) # type: ignore File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/cli/archivebox_init.py", line 43, in main init( File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/util.py", line 114, in typechecked_function return func(*args, **kwargs) File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/main.py", line 328, in init for migration_line in apply_migrations(out_dir): File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/util.py", line 114, in typechecked_function return func(*args, **kwargs) File "/home/aditya/.local/lib/python3.9/site-packages/archivebox/index/sql.py", line 137, in apply_migrations call_command("makemigrations", interactive=False, stdout=null) File "/home/aditya/.local/lib/python3.9/site-packages/django/core/management/__init__.py", line 168, in call_command return command.execute(*args, **defaults) File "/home/aditya/.local/lib/python3.9/site-packages/django/core/management/base.py", line 371, in execute output = self.handle(*args, **options) File "/home/aditya/.local/lib/python3.9/site-packages/django/core/management/base.py", line 85, in wrapped res = handle_func(*args, **kwargs) File "/home/aditya/.local/lib/python3.9/site-packages/django/core/management/commands/makemigrations.py", line 101, in handle loader.check_consistent_history(connection) File "/home/aditya/.local/lib/python3.9/site-packages/django/db/migrations/loader.py", line 290, in check_consistent_history applied = recorder.applied_migrations() File "/home/aditya/.local/lib/python3.9/site-packages/django/db/migrations/recorder.py", line 77, in applied_migrations if self.has_table(): File "/home/aditya/.local/lib/python3.9/site-packages/django/db/migrations/recorder.py", line 55, in has_table with self.connection.cursor() as cursor: File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 259, in cursor return self._cursor() File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 235, in _cursor self.ensure_connection() File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection self.connect() File "/home/aditya/.local/lib/python3.9/site-packages/django/db/utils.py", line 90, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection self.connect() File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 200, in connect self.connection = self.get_new_connection(conn_params) File "/home/aditya/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/aditya/.local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 207, in get_new_connection conn = Database.connect(**conn_params) django.db.utils.OperationalError: disk I/O error ```
kerem closed this issue 2026-03-14 23:29:55 +03:00
Author
Owner

@adityajpatil commented on GitHub (Oct 23, 2021):

This is due to sqlite not being able to use FUSE storage. I was able to fix this by passing --vfs-cache-mode=full option to rclone mount.

<!-- gh-comment-id:950170054 --> @adityajpatil commented on GitHub (Oct 23, 2021): This is due to sqlite not being able to use FUSE storage. I was able to fix this by passing --vfs-cache-mode=full option to rclone mount.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ArchiveBox#3562
No description provided.