mirror of
https://github.com/ipfs-shipyard/py-ipfs-http-client.git
synced 2021-08-30 00:23:11 +03:00
Rename new environment variables to use standard PY_IPFS_HTTP_CLIENT_DEFAULT prefix and update docs
This commit is contained in:
committed by
Alexander Schlarb
parent
e7b5e55727
commit
3bb169acaa
@@ -87,5 +87,5 @@ generation and publish process:
|
||||
If you are publishing to an IPFS server that is remote, and protected by an HTTP reverse proxy
|
||||
with TLS and basic authentication, run this instead:
|
||||
|
||||
$ IPFS_API_MULTI_ADDR=/dns/yourserver.tld/tcp/5001/https IPFS_API_USERNAME=basicauthuser IPFS_API_PASSWORD=basicauthpassword python publish.py ipns-key-id
|
||||
$ PY_IPFS_HTTP_CLIENT_DEFAULT_ADDR=/dns/yourserver.tld/tcp/5001/https PY_IPFS_HTTP_CLIENT_DEFAULT_USERNAME=basicauthuser PY_IPFS_HTTP_CLIENT_DEFAULT_PASSWORD=basicauthpassword python publish.py ipns-key-id
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#!/usr/bin/python3
|
||||
import os
|
||||
import sphinx.cmd.build
|
||||
import sys
|
||||
import typing as ty
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
sys.path.insert(0, os.path.join(script_dir, ".."))
|
||||
|
||||
import sphinx.cmd.build
|
||||
import ipfshttpclient
|
||||
|
||||
os.chdir(script_dir)
|
||||
@@ -20,26 +20,21 @@ def main(argv: ty.List[str]) -> int:
|
||||
|
||||
print("Usage: {0} [IPNS-key]".format(os.path.basename(__file__)))
|
||||
print()
|
||||
print('To connect to a remote IPFS daemon, set environment variables:')
|
||||
print()
|
||||
print(' PY_IPFS_HTTP_CLIENT_DEFAULT_ADDR')
|
||||
print(' PY_IPFS_HTTP_CLIENT_DEFAULT_USERNAME')
|
||||
print(' PY_IPFS_HTTP_CLIENT_DEFAULT_PASSWORD')
|
||||
print()
|
||||
print("!! Continuing without publishing to IPNS !!")
|
||||
print()
|
||||
|
||||
ipfs_api_address: str = os.getenv('IPFS_API_MULTI_ADDR', str(ipfshttpclient.DEFAULT_ADDR))
|
||||
ipfs_api_username: ty.Optional[str] = os.getenv('IPFS_API_USERNAME', None)
|
||||
ipfs_api_password: ty.Optional[str] = os.getenv('IPFS_API_PASSWORD', None)
|
||||
|
||||
return publish(
|
||||
ipfs_api_address=ipfs_api_address,
|
||||
ipfs_api_username=ipfs_api_username,
|
||||
ipfs_api_password=ipfs_api_password,
|
||||
ipns_key=ipns_key
|
||||
)
|
||||
|
||||
|
||||
def publish(
|
||||
ipfs_api_address: str,
|
||||
ipfs_api_username: ty.Optional[str],
|
||||
ipfs_api_password: ty.Optional[str],
|
||||
ipns_key: ty.Optional[str]) -> int:
|
||||
def publish(ipns_key: ty.Optional[str]) -> int:
|
||||
# Invoke Sphinx like the Makefile does
|
||||
result = sphinx.cmd.build.build_main([
|
||||
"-b", "html",
|
||||
@@ -52,8 +47,8 @@ def publish(
|
||||
return result
|
||||
|
||||
print()
|
||||
print(f"Exporting files to IPFS server at {ipfs_api_address}…")
|
||||
client = ipfshttpclient.connect(addr=ipfs_api_address, username=ipfs_api_username, password=ipfs_api_password)
|
||||
print(f"Exporting files to IPFS server at {ipfshttpclient.DEFAULT_ADDR}…")
|
||||
client = ipfshttpclient.connect()
|
||||
hash_docs = client.add("build/html", recursive=True, raw_leaves=True, pin=False)[-1]["Hash"]
|
||||
hash_main = client.object.new("unixfs-dir")["Hash"]
|
||||
hash_main = client.object.patch.add_link(hash_main, "docs", hash_docs)["Hash"]
|
||||
|
||||
@@ -8,6 +8,9 @@ from .version import __version__
|
||||
###################################
|
||||
from . import exceptions
|
||||
|
||||
from .client import DEFAULT_ADDR, DEFAULT_BASE
|
||||
from .client import DEFAULT_ADDR, \
|
||||
DEFAULT_BASE, \
|
||||
DEFAULT_USERNAME, \
|
||||
DEFAULT_PASSWORD
|
||||
from .client import VERSION_MINIMUM, VERSION_MAXIMUM
|
||||
from .client import Client, assert_version, connect
|
||||
|
||||
@@ -13,6 +13,8 @@ import multiaddr
|
||||
|
||||
DEFAULT_ADDR = multiaddr.Multiaddr(os.environ.get("PY_IPFS_HTTP_CLIENT_DEFAULT_ADDR", '/dns/localhost/tcp/5001/http'))
|
||||
DEFAULT_BASE = str(os.environ.get("PY_IPFS_HTTP_CLIENT_DEFAULT_BASE", 'api/v0'))
|
||||
DEFAULT_USERNAME: ty.Optional[str] = os.getenv('PY_IPFS_HTTP_CLIENT_DEFAULT_USERNAME', None)
|
||||
DEFAULT_PASSWORD: ty.Optional[str] = os.getenv('PY_IPFS_HTTP_CLIENT_DEFAULT_PASSWORD', None)
|
||||
|
||||
# This range inclusive-exclusive, so the daemon version must match
|
||||
# `VERSION_MINIMUM <= version < VERSION_MAXIMUM`
|
||||
@@ -91,9 +93,8 @@ def connect(
|
||||
headers: http.headers_t = {},
|
||||
timeout: http.timeout_t = 120,
|
||||
|
||||
# Backward-compatibility
|
||||
username: ty.Optional[str] = None,
|
||||
password: ty.Optional[str] = None
|
||||
username: ty.Optional[str] = DEFAULT_USERNAME,
|
||||
password: ty.Optional[str] = DEFAULT_PASSWORD
|
||||
):
|
||||
"""Create a new :class:`~ipfshttpclient.Client` instance and connect to the
|
||||
daemon to validate that its version is supported as well as applying any
|
||||
|
||||
@@ -4,7 +4,7 @@ import typing as ty
|
||||
|
||||
import multiaddr # type: ignore[import]
|
||||
|
||||
from . import DEFAULT_ADDR, DEFAULT_BASE
|
||||
from . import DEFAULT_ADDR, DEFAULT_BASE, DEFAULT_USERNAME, DEFAULT_PASSWORD
|
||||
|
||||
from .. import multipart, http, utils
|
||||
from ..http_common import ClientSyncBase
|
||||
@@ -337,9 +337,8 @@ class ClientBase:
|
||||
headers: http.headers_t = {}, # type: ignore[assignment] # False positive
|
||||
timeout: http.timeout_t = 120,
|
||||
|
||||
# Backward-compat
|
||||
username: ty.Optional[str] = None,
|
||||
password: ty.Optional[str] = None
|
||||
username: ty.Optional[str] = DEFAULT_USERNAME,
|
||||
password: ty.Optional[str] = DEFAULT_PASSWORD
|
||||
):
|
||||
"""
|
||||
Arguments
|
||||
|
||||
@@ -368,7 +368,8 @@ def test_session(http_client, http_server):
|
||||
assert http_client._session is None
|
||||
try:
|
||||
http_client.open_session()
|
||||
http_client._session is not None
|
||||
assert http_client._session is not None
|
||||
|
||||
res = http_client.request("/okay")
|
||||
assert res == b"okay"
|
||||
finally:
|
||||
|
||||
Reference in New Issue
Block a user