fake-gcs-server
fake-gcs-server provides an emulator for Google Cloud Storage API. It can be
used as a library in Go projects and/or as a standalone binary/Docker image.
The library is available inside the package
github.com/fsouza/fake-gcs-server/fakestorage
and can be used from within test suites in Go package. The emulator is
available as a binary that can be built manually, downloaded from the releases
page or pulled from Docker
Hub (docker pull fsouza/fake-gcs-server
).
Using the emulator in Docker
If you want to run a standalone server (like the datastore/pubsub emulators)
for integration tests and/or tests in other languages you may want to run the
fake-gcs-server
inside a Docker container:
docker run -d --name fake-gcs-server -p 4443:4443 fsouza/fake-gcs-server
Preload data
In case you want to preload some data in fake-gcs-server
just mount a
folder in the container at /data
:
docker run -d --name fake-gcs-server -p 4443:4443 -v ${PWD}/examples/data:/data fsouza/fake-gcs-server
Where the content of ${PWD}/examples/data
is something like:
.
└── sample-bucket
└── some_file.txt
To make sure everything works as expected you can execute these commands:
curl --insecure https://0.0.0.0:4443/storage/v1/b
{"kind":"storage#buckets","items":[{"kind":"storage#bucket","id":"sample-bucket","name":"sample-bucket"}],"prefixes":null}
curl --insecure https://0.0.0.0:4443/storage/v1/b/sample-bucket/o
{"kind":"storage#objects","items":[{"kind":"storage#object","name":"some_file.txt","id":"sample-bucket/some_file.txt","bucket":"sample-bucket","size":"33"}],"prefixes":[]}
This will result in one bucket called sample-bucket
containing one object called some_file.txt
.
Client library examples
For examples using the Python, Node.js and Go clients, check out the examples
directory.
Building the image locally
You may use docker build
to build the image locally instead of pulling it
from Docker Hub:
docker build -t fsouza/fake-gcs-server .