summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 13:02:08 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 13:02:08 +0000
commit8c4e7c9a9f8cd213f71a9d449506ce2c6a481549 (patch)
treee6e932c6c5ecca5c0f6ddf16da50d0b41a552af3
parent9730eb7a9149eb755b810e8e4512aa5a08dacd9f (diff)
automatic import of python-gcp-storage-emulatoropeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-gcp-storage-emulator.spec338
-rw-r--r--sources1
3 files changed, 340 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..addcb6c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/gcp-storage-emulator-2022.6.11.tar.gz
diff --git a/python-gcp-storage-emulator.spec b/python-gcp-storage-emulator.spec
new file mode 100644
index 0000000..efd99d4
--- /dev/null
+++ b/python-gcp-storage-emulator.spec
@@ -0,0 +1,338 @@
+%global _empty_manifest_terminate_build 0
+Name: python-gcp-storage-emulator
+Version: 2022.6.11
+Release: 1
+Summary: A stub emulator for the Google Cloud Storage API
+License: BSD License
+URL: https://github.com/oittaa/gcp-storage-emulator
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/d6/b0/100bdd201799c3872e2015504e5b67126449938d86d42cbab1ed41a4754a/gcp-storage-emulator-2022.6.11.tar.gz
+BuildArch: noarch
+
+Requires: python3-fs
+Requires: python3-google-crc32c
+
+%description
+## Installation
+`pip install gcp-storage-emulator`
+## CLI Usage
+### Starting the emulator
+Start the emulator with:
+```bash
+gcp-storage-emulator start
+```
+By default, the server will listen on `http://localhost:9023` and data is stored under `./.cloudstorage`. You can configure the folder using the env variables `STORAGE_BASE` (default `./`) and `STORAGE_DIR` (default `.cloudstorage`).
+If you wish to run the emulator in a testing environment or if you don't want to persist any data, you can use the `--in-memory` parameter. For tests, you might want to consider starting up the server from your code (see the [Python APIs](#python-apis))
+If you're using the Google client library (e.g. `google-cloud-storage` for Python) then you can set the `STORAGE_EMULATOR_HOST` environment variable to tell the library to connect to your emulator endpoint rather than the standard `https://storage.googleapis.com`, e.g.:
+```bash
+export STORAGE_EMULATOR_HOST=http://localhost:9023
+```
+### Wiping data
+You can wipe the data by running
+```bash
+gcp-storage-emulator wipe
+```
+You can pass `--keep-buckets` to wipe the data while keeping the buckets.
+#### Example
+Use in-memory storage and automatically create default storage bucket `my-bucket`.
+```bash
+gcp-storage-emulator start --host=localhost --port=9023 --in-memory --default-bucket=my-bucket
+```
+## Python APIs
+To start a server from your code you can do
+```python
+from gcp_storage_emulator.server import create_server
+server = create_server("localhost", 9023, in_memory=False)
+server.start()
+# ........
+server.stop()
+```
+You can wipe the data by calling `server.wipe()`
+This can also be achieved (e.g. during tests) by hitting the `/wipe` HTTP endpoint
+#### Example
+```python
+import os
+from google.cloud import storage
+from gcp_storage_emulator.server import create_server
+HOST = "localhost"
+PORT = 9023
+BUCKET = "test-bucket"
+# default_bucket parameter creates the bucket automatically
+server = create_server(HOST, PORT, in_memory=True, default_bucket=BUCKET)
+server.start()
+os.environ["STORAGE_EMULATOR_HOST"] = f"http://{HOST}:{PORT}"
+client = storage.Client()
+bucket = client.bucket(BUCKET)
+blob = bucket.blob("blob1")
+blob.upload_from_string("test1")
+blob = bucket.blob("blob2")
+blob.upload_from_string("test2")
+for blob in bucket.list_blobs():
+ content = blob.download_as_bytes()
+ print(f"Blob [{blob.name}]: {content}")
+server.stop()
+```
+## Docker
+Pull the Docker image.
+```bash
+docker pull oittaa/gcp-storage-emulator
+```
+Inside the container instance, the value of the `PORT` environment variable always reflects the port to which requests are sent. It defaults to `8080`. The directory used for the emulated storage is located under `/storage` in the container. In the following example the host's directory `$(pwd)/cloudstorage` will be bound to the emulated storage.
+```bash
+docker run -d \
+ -e PORT=9023 \
+ -p 9023:9023 \
+ --name gcp-storage-emulator \
+ -v "$(pwd)/cloudstorage":/storage \
+ oittaa/gcp-storage-emulator
+```
+```python
+import os
+from google.cloud import exceptions, storage
+HOST = "localhost"
+PORT = 9023
+BUCKET = "test-bucket"
+os.environ["STORAGE_EMULATOR_HOST"] = f"http://{HOST}:{PORT}"
+client = storage.Client()
+try:
+ bucket = client.create_bucket(BUCKET)
+except exceptions.Conflict:
+ bucket = client.bucket(BUCKET)
+blob = bucket.blob("blob1")
+blob.upload_from_string("test1")
+print(blob.download_as_bytes())
+```
+
+%package -n python3-gcp-storage-emulator
+Summary: A stub emulator for the Google Cloud Storage API
+Provides: python-gcp-storage-emulator
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-gcp-storage-emulator
+## Installation
+`pip install gcp-storage-emulator`
+## CLI Usage
+### Starting the emulator
+Start the emulator with:
+```bash
+gcp-storage-emulator start
+```
+By default, the server will listen on `http://localhost:9023` and data is stored under `./.cloudstorage`. You can configure the folder using the env variables `STORAGE_BASE` (default `./`) and `STORAGE_DIR` (default `.cloudstorage`).
+If you wish to run the emulator in a testing environment or if you don't want to persist any data, you can use the `--in-memory` parameter. For tests, you might want to consider starting up the server from your code (see the [Python APIs](#python-apis))
+If you're using the Google client library (e.g. `google-cloud-storage` for Python) then you can set the `STORAGE_EMULATOR_HOST` environment variable to tell the library to connect to your emulator endpoint rather than the standard `https://storage.googleapis.com`, e.g.:
+```bash
+export STORAGE_EMULATOR_HOST=http://localhost:9023
+```
+### Wiping data
+You can wipe the data by running
+```bash
+gcp-storage-emulator wipe
+```
+You can pass `--keep-buckets` to wipe the data while keeping the buckets.
+#### Example
+Use in-memory storage and automatically create default storage bucket `my-bucket`.
+```bash
+gcp-storage-emulator start --host=localhost --port=9023 --in-memory --default-bucket=my-bucket
+```
+## Python APIs
+To start a server from your code you can do
+```python
+from gcp_storage_emulator.server import create_server
+server = create_server("localhost", 9023, in_memory=False)
+server.start()
+# ........
+server.stop()
+```
+You can wipe the data by calling `server.wipe()`
+This can also be achieved (e.g. during tests) by hitting the `/wipe` HTTP endpoint
+#### Example
+```python
+import os
+from google.cloud import storage
+from gcp_storage_emulator.server import create_server
+HOST = "localhost"
+PORT = 9023
+BUCKET = "test-bucket"
+# default_bucket parameter creates the bucket automatically
+server = create_server(HOST, PORT, in_memory=True, default_bucket=BUCKET)
+server.start()
+os.environ["STORAGE_EMULATOR_HOST"] = f"http://{HOST}:{PORT}"
+client = storage.Client()
+bucket = client.bucket(BUCKET)
+blob = bucket.blob("blob1")
+blob.upload_from_string("test1")
+blob = bucket.blob("blob2")
+blob.upload_from_string("test2")
+for blob in bucket.list_blobs():
+ content = blob.download_as_bytes()
+ print(f"Blob [{blob.name}]: {content}")
+server.stop()
+```
+## Docker
+Pull the Docker image.
+```bash
+docker pull oittaa/gcp-storage-emulator
+```
+Inside the container instance, the value of the `PORT` environment variable always reflects the port to which requests are sent. It defaults to `8080`. The directory used for the emulated storage is located under `/storage` in the container. In the following example the host's directory `$(pwd)/cloudstorage` will be bound to the emulated storage.
+```bash
+docker run -d \
+ -e PORT=9023 \
+ -p 9023:9023 \
+ --name gcp-storage-emulator \
+ -v "$(pwd)/cloudstorage":/storage \
+ oittaa/gcp-storage-emulator
+```
+```python
+import os
+from google.cloud import exceptions, storage
+HOST = "localhost"
+PORT = 9023
+BUCKET = "test-bucket"
+os.environ["STORAGE_EMULATOR_HOST"] = f"http://{HOST}:{PORT}"
+client = storage.Client()
+try:
+ bucket = client.create_bucket(BUCKET)
+except exceptions.Conflict:
+ bucket = client.bucket(BUCKET)
+blob = bucket.blob("blob1")
+blob.upload_from_string("test1")
+print(blob.download_as_bytes())
+```
+
+%package help
+Summary: Development documents and examples for gcp-storage-emulator
+Provides: python3-gcp-storage-emulator-doc
+%description help
+## Installation
+`pip install gcp-storage-emulator`
+## CLI Usage
+### Starting the emulator
+Start the emulator with:
+```bash
+gcp-storage-emulator start
+```
+By default, the server will listen on `http://localhost:9023` and data is stored under `./.cloudstorage`. You can configure the folder using the env variables `STORAGE_BASE` (default `./`) and `STORAGE_DIR` (default `.cloudstorage`).
+If you wish to run the emulator in a testing environment or if you don't want to persist any data, you can use the `--in-memory` parameter. For tests, you might want to consider starting up the server from your code (see the [Python APIs](#python-apis))
+If you're using the Google client library (e.g. `google-cloud-storage` for Python) then you can set the `STORAGE_EMULATOR_HOST` environment variable to tell the library to connect to your emulator endpoint rather than the standard `https://storage.googleapis.com`, e.g.:
+```bash
+export STORAGE_EMULATOR_HOST=http://localhost:9023
+```
+### Wiping data
+You can wipe the data by running
+```bash
+gcp-storage-emulator wipe
+```
+You can pass `--keep-buckets` to wipe the data while keeping the buckets.
+#### Example
+Use in-memory storage and automatically create default storage bucket `my-bucket`.
+```bash
+gcp-storage-emulator start --host=localhost --port=9023 --in-memory --default-bucket=my-bucket
+```
+## Python APIs
+To start a server from your code you can do
+```python
+from gcp_storage_emulator.server import create_server
+server = create_server("localhost", 9023, in_memory=False)
+server.start()
+# ........
+server.stop()
+```
+You can wipe the data by calling `server.wipe()`
+This can also be achieved (e.g. during tests) by hitting the `/wipe` HTTP endpoint
+#### Example
+```python
+import os
+from google.cloud import storage
+from gcp_storage_emulator.server import create_server
+HOST = "localhost"
+PORT = 9023
+BUCKET = "test-bucket"
+# default_bucket parameter creates the bucket automatically
+server = create_server(HOST, PORT, in_memory=True, default_bucket=BUCKET)
+server.start()
+os.environ["STORAGE_EMULATOR_HOST"] = f"http://{HOST}:{PORT}"
+client = storage.Client()
+bucket = client.bucket(BUCKET)
+blob = bucket.blob("blob1")
+blob.upload_from_string("test1")
+blob = bucket.blob("blob2")
+blob.upload_from_string("test2")
+for blob in bucket.list_blobs():
+ content = blob.download_as_bytes()
+ print(f"Blob [{blob.name}]: {content}")
+server.stop()
+```
+## Docker
+Pull the Docker image.
+```bash
+docker pull oittaa/gcp-storage-emulator
+```
+Inside the container instance, the value of the `PORT` environment variable always reflects the port to which requests are sent. It defaults to `8080`. The directory used for the emulated storage is located under `/storage` in the container. In the following example the host's directory `$(pwd)/cloudstorage` will be bound to the emulated storage.
+```bash
+docker run -d \
+ -e PORT=9023 \
+ -p 9023:9023 \
+ --name gcp-storage-emulator \
+ -v "$(pwd)/cloudstorage":/storage \
+ oittaa/gcp-storage-emulator
+```
+```python
+import os
+from google.cloud import exceptions, storage
+HOST = "localhost"
+PORT = 9023
+BUCKET = "test-bucket"
+os.environ["STORAGE_EMULATOR_HOST"] = f"http://{HOST}:{PORT}"
+client = storage.Client()
+try:
+ bucket = client.create_bucket(BUCKET)
+except exceptions.Conflict:
+ bucket = client.bucket(BUCKET)
+blob = bucket.blob("blob1")
+blob.upload_from_string("test1")
+print(blob.download_as_bytes())
+```
+
+%prep
+%autosetup -n gcp-storage-emulator-2022.6.11
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-gcp-storage-emulator -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 2022.6.11-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..83e66ca
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+0cfd5e83d6920c7a54ce047bb30d3460 gcp-storage-emulator-2022.6.11.tar.gz