updatet license, added file api docs
This commit is contained in:
+1
-1
@@ -23,4 +23,4 @@ RUN touch /app/etc/mstore/mstored.yaml
|
|||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
#USER daemon:daemon
|
#USER daemon:daemon
|
||||||
ENTRYPOINT ["/app/sbin/mstored", "--asDaemon=false", "--port=1025"]
|
ENTRYPOINT ["/app/sbin/mstored", "--asDaemon=false"]
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
|
|
||||||
Данный сервис был написан мной в целях представить простой в развертывании, модификации и
|
|
||||||
использовании сервис хранения артефактов.
|
|
||||||
Прежде всего образов контейнеров и helm charts. Я не претендовал и не претендую на
|
|
||||||
коммерческий продукт в широком публичном испльзовании.
|
|
||||||
|
|
||||||
Он успешно испытан при создании k8s кластеров и развертывании приложений в нем.
|
|
||||||
|
|
||||||
В этом продукте представлено три условных протокола взаимодействия:
|
|
||||||
|
|
||||||
1 Это протокол передачи компонент образов контейнеров,
|
|
||||||
выросший из протокола, придуманном неким человеком в Docker.com.
|
|
||||||
У меня много вопросов к нему (к ним?). И предполагаю что некоторые будут
|
|
||||||
содержать преимуществнно обсценную лекcику, к которой пришел
|
|
||||||
в процессе реализации протокола.
|
|
||||||
|
|
||||||
Предволожительно и по содержанию первой версии docker сервиса,
|
|
||||||
это протокол, созданный начинающим в професиии человеком и знающим только HTTP.
|
|
||||||
Но интегрированный в деловые процессы он стал основой де-факто,
|
|
||||||
судя по всему без значительных попыток пересмотра.
|
|
||||||
|
|
||||||
Кодирование состояний приложения в коды HTTP считаю возможным, есть и более страннные подходы.
|
|
||||||
Но это как будто к тебе присылают немого курьера в красной куртке, что бы сообщить
|
|
||||||
что твоя посылка потеряна.
|
|
||||||
|
|
||||||
Позднее этот протокол был несколько облагорожен и получил статус и редакцию
|
|
||||||
стандарта от Open Container Initiative.
|
|
||||||
|
|
||||||
Его реализации разнятся по содержанию и поведению, и по моим приблизительным оценкам,
|
|
||||||
совпадают с опубликованными спецификациями где-то на две трети,
|
|
||||||
даже в части обязательных указаний.
|
|
||||||
|
|
||||||
2 Созданнный в стиле первого, протокол передачи файлов и чартов. Фактически
|
|
||||||
ограничен реализацией протокола в утилите helm.
|
|
||||||
|
|
||||||
3 Протол управления аккаунтами и разрешениями сервиса. Он сделан по мотивам
|
|
||||||
JSON RPC и относительно независим от транспортной среды. Относительно незавивисим,
|
|
||||||
поскольку тип субьекта и операция с ним кодируются в пути запроса.
|
|
||||||
Этот подход с одной стороны относительно привычен для многих.
|
|
||||||
С другой стороны, мы не ограничены параметрами запросов и ответов, и ограничены
|
|
||||||
только границами json формализмов и сериализации.
|
|
||||||
|
|
||||||
+116
-24
@@ -1,11 +1,67 @@
|
|||||||
|
|
||||||
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0
|
Attribution-NonCommercial-ShareAlike 4.0 International
|
||||||
International Public License
|
|
||||||
|
=======================================================================
|
||||||
|
|
||||||
|
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
||||||
|
does not provide legal services or legal advice. Distribution of
|
||||||
|
Creative Commons public licenses does not create a lawyer-client or
|
||||||
|
other relationship. Creative Commons makes its licenses and related
|
||||||
|
information available on an "as-is" basis. Creative Commons gives no
|
||||||
|
warranties regarding its licenses, any material licensed under their
|
||||||
|
terms and conditions, or any related information. Creative Commons
|
||||||
|
disclaims all liability for damages resulting from their use to the
|
||||||
|
fullest extent possible.
|
||||||
|
|
||||||
|
Using Creative Commons Public Licenses
|
||||||
|
|
||||||
|
Creative Commons public licenses provide a standard set of terms and
|
||||||
|
conditions that creators and other rights holders may use to share
|
||||||
|
original works of authorship and other material subject to copyright
|
||||||
|
and certain other rights specified in the public license below. The
|
||||||
|
following considerations are for informational purposes only, are not
|
||||||
|
exhaustive, and do not form part of our licenses.
|
||||||
|
|
||||||
|
Considerations for licensors: Our public licenses are
|
||||||
|
intended for use by those authorized to give the public
|
||||||
|
permission to use material in ways otherwise restricted by
|
||||||
|
copyright and certain other rights. Our licenses are
|
||||||
|
irrevocable. Licensors should read and understand the terms
|
||||||
|
and conditions of the license they choose before applying it.
|
||||||
|
Licensors should also secure all rights necessary before
|
||||||
|
applying our licenses so that the public can reuse the
|
||||||
|
material as expected. Licensors should clearly mark any
|
||||||
|
material not subject to the license. This includes other CC-
|
||||||
|
licensed material, or material used under an exception or
|
||||||
|
limitation to copyright. More considerations for licensors:
|
||||||
|
wiki.creativecommons.org/Considerations_for_licensors
|
||||||
|
|
||||||
|
Considerations for the public: By using one of our public
|
||||||
|
licenses, a licensor grants the public permission to use the
|
||||||
|
licensed material under specified terms and conditions. If
|
||||||
|
the licensor's permission is not necessary for any reason--for
|
||||||
|
example, because of any applicable exception or limitation to
|
||||||
|
copyright--then that use is not regulated by the license. Our
|
||||||
|
licenses grant only permissions under copyright and certain
|
||||||
|
other rights that a licensor has authority to grant. Use of
|
||||||
|
the licensed material may still be restricted for other
|
||||||
|
reasons, including because others have copyright or other
|
||||||
|
rights in the material. A licensor may make special requests,
|
||||||
|
such as asking that all changes be marked or described.
|
||||||
|
Although not required by our licenses, you are encouraged to
|
||||||
|
respect those requests where reasonable. More considerations
|
||||||
|
for the public:
|
||||||
|
wiki.creativecommons.org/Considerations_for_licensees
|
||||||
|
|
||||||
|
=======================================================================
|
||||||
|
|
||||||
|
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
|
||||||
|
Public License
|
||||||
|
|
||||||
By exercising the Licensed Rights (defined below), You accept and agree
|
By exercising the Licensed Rights (defined below), You accept and agree
|
||||||
to be bound by the terms and conditions of this Creative Commons
|
to be bound by the terms and conditions of this Creative Commons
|
||||||
Attribution-NonCommercial-NoDerivatives 4.0 International Public
|
Attribution-NonCommercial-ShareAlike 4.0 International Public License
|
||||||
License ("Public License"). To the extent this Public License may be
|
("Public License"). To the extent this Public License may be
|
||||||
interpreted as a contract, You are granted the Licensed Rights in
|
interpreted as a contract, You are granted the Licensed Rights in
|
||||||
consideration of Your acceptance of these terms and conditions, and the
|
consideration of Your acceptance of these terms and conditions, and the
|
||||||
Licensor grants You such rights in consideration of benefits the
|
Licensor grants You such rights in consideration of benefits the
|
||||||
@@ -25,7 +81,15 @@ Section 1 -- Definitions.
|
|||||||
Adapted Material is always produced where the Licensed Material is
|
Adapted Material is always produced where the Licensed Material is
|
||||||
synched in timed relation with a moving image.
|
synched in timed relation with a moving image.
|
||||||
|
|
||||||
b. Copyright and Similar Rights means copyright and/or similar rights
|
b. Adapter's License means the license You apply to Your Copyright
|
||||||
|
and Similar Rights in Your contributions to Adapted Material in
|
||||||
|
accordance with the terms and conditions of this Public License.
|
||||||
|
|
||||||
|
c. BY-NC-SA Compatible License means a license listed at
|
||||||
|
creativecommons.org/compatiblelicenses, approved by Creative
|
||||||
|
Commons as essentially the equivalent of this Public License.
|
||||||
|
|
||||||
|
d. Copyright and Similar Rights means copyright and/or similar rights
|
||||||
closely related to copyright including, without limitation,
|
closely related to copyright including, without limitation,
|
||||||
performance, broadcast, sound recording, and Sui Generis Database
|
performance, broadcast, sound recording, and Sui Generis Database
|
||||||
Rights, without regard to how the rights are labeled or
|
Rights, without regard to how the rights are labeled or
|
||||||
@@ -33,29 +97,33 @@ Section 1 -- Definitions.
|
|||||||
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
||||||
Rights.
|
Rights.
|
||||||
|
|
||||||
c. Effective Technological Measures means those measures that, in the
|
e. Effective Technological Measures means those measures that, in the
|
||||||
absence of proper authority, may not be circumvented under laws
|
absence of proper authority, may not be circumvented under laws
|
||||||
fulfilling obligations under Article 11 of the WIPO Copyright
|
fulfilling obligations under Article 11 of the WIPO Copyright
|
||||||
Treaty adopted on December 20, 1996, and/or similar international
|
Treaty adopted on December 20, 1996, and/or similar international
|
||||||
agreements.
|
agreements.
|
||||||
|
|
||||||
d. Exceptions and Limitations means fair use, fair dealing, and/or
|
f. Exceptions and Limitations means fair use, fair dealing, and/or
|
||||||
any other exception or limitation to Copyright and Similar Rights
|
any other exception or limitation to Copyright and Similar Rights
|
||||||
that applies to Your use of the Licensed Material.
|
that applies to Your use of the Licensed Material.
|
||||||
|
|
||||||
e. Licensed Material means the artistic or literary work, database,
|
g. License Elements means the license attributes listed in the name
|
||||||
|
of a Creative Commons Public License. The License Elements of this
|
||||||
|
Public License are Attribution, NonCommercial, and ShareAlike.
|
||||||
|
|
||||||
|
h. Licensed Material means the artistic or literary work, database,
|
||||||
or other material to which the Licensor applied this Public
|
or other material to which the Licensor applied this Public
|
||||||
License.
|
License.
|
||||||
|
|
||||||
f. Licensed Rights means the rights granted to You subject to the
|
i. Licensed Rights means the rights granted to You subject to the
|
||||||
terms and conditions of this Public License, which are limited to
|
terms and conditions of this Public License, which are limited to
|
||||||
all Copyright and Similar Rights that apply to Your use of the
|
all Copyright and Similar Rights that apply to Your use of the
|
||||||
Licensed Material and that the Licensor has authority to license.
|
Licensed Material and that the Licensor has authority to license.
|
||||||
|
|
||||||
g. Licensor means the individual(s) or entity(ies) granting rights
|
j. Licensor means the individual(s) or entity(ies) granting rights
|
||||||
under this Public License.
|
under this Public License.
|
||||||
|
|
||||||
h. NonCommercial means not primarily intended for or directed towards
|
k. NonCommercial means not primarily intended for or directed towards
|
||||||
commercial advantage or monetary compensation. For purposes of
|
commercial advantage or monetary compensation. For purposes of
|
||||||
this Public License, the exchange of the Licensed Material for
|
this Public License, the exchange of the Licensed Material for
|
||||||
other material subject to Copyright and Similar Rights by digital
|
other material subject to Copyright and Similar Rights by digital
|
||||||
@@ -63,7 +131,7 @@ Section 1 -- Definitions.
|
|||||||
no payment of monetary compensation in connection with the
|
no payment of monetary compensation in connection with the
|
||||||
exchange.
|
exchange.
|
||||||
|
|
||||||
i. Share means to provide material to the public by any means or
|
l. Share means to provide material to the public by any means or
|
||||||
process that requires permission under the Licensed Rights, such
|
process that requires permission under the Licensed Rights, such
|
||||||
as reproduction, public display, public performance, distribution,
|
as reproduction, public display, public performance, distribution,
|
||||||
dissemination, communication, or importation, and to make material
|
dissemination, communication, or importation, and to make material
|
||||||
@@ -71,13 +139,13 @@ Section 1 -- Definitions.
|
|||||||
public may access the material from a place and at a time
|
public may access the material from a place and at a time
|
||||||
individually chosen by them.
|
individually chosen by them.
|
||||||
|
|
||||||
j. Sui Generis Database Rights means rights other than copyright
|
m. Sui Generis Database Rights means rights other than copyright
|
||||||
resulting from Directive 96/9/EC of the European Parliament and of
|
resulting from Directive 96/9/EC of the European Parliament and of
|
||||||
the Council of 11 March 1996 on the legal protection of databases,
|
the Council of 11 March 1996 on the legal protection of databases,
|
||||||
as amended and/or succeeded, as well as other essentially
|
as amended and/or succeeded, as well as other essentially
|
||||||
equivalent rights anywhere in the world.
|
equivalent rights anywhere in the world.
|
||||||
|
|
||||||
k. You means the individual or entity exercising the Licensed Rights
|
n. You means the individual or entity exercising the Licensed Rights
|
||||||
under this Public License. Your has a corresponding meaning.
|
under this Public License. Your has a corresponding meaning.
|
||||||
|
|
||||||
|
|
||||||
@@ -93,8 +161,8 @@ Section 2 -- Scope.
|
|||||||
a. reproduce and Share the Licensed Material, in whole or
|
a. reproduce and Share the Licensed Material, in whole or
|
||||||
in part, for NonCommercial purposes only; and
|
in part, for NonCommercial purposes only; and
|
||||||
|
|
||||||
b. produce and reproduce, but not Share, Adapted Material
|
b. produce, reproduce, and Share Adapted Material for
|
||||||
for NonCommercial purposes only.
|
NonCommercial purposes only.
|
||||||
|
|
||||||
2. Exceptions and Limitations. For the avoidance of doubt, where
|
2. Exceptions and Limitations. For the avoidance of doubt, where
|
||||||
Exceptions and Limitations apply to Your use, this Public
|
Exceptions and Limitations apply to Your use, this Public
|
||||||
@@ -124,7 +192,13 @@ Section 2 -- Scope.
|
|||||||
Licensed Rights under the terms and conditions of this
|
Licensed Rights under the terms and conditions of this
|
||||||
Public License.
|
Public License.
|
||||||
|
|
||||||
b. No downstream restrictions. You may not offer or impose
|
b. Additional offer from the Licensor -- Adapted Material.
|
||||||
|
Every recipient of Adapted Material from You
|
||||||
|
automatically receives an offer from the Licensor to
|
||||||
|
exercise the Licensed Rights in the Adapted Material
|
||||||
|
under the conditions of the Adapter's License You apply.
|
||||||
|
|
||||||
|
c. No downstream restrictions. You may not offer or impose
|
||||||
any additional or different terms or conditions on, or
|
any additional or different terms or conditions on, or
|
||||||
apply any Effective Technological Measures to, the
|
apply any Effective Technological Measures to, the
|
||||||
Licensed Material if doing so restricts exercise of the
|
Licensed Material if doing so restricts exercise of the
|
||||||
@@ -168,7 +242,8 @@ following conditions.
|
|||||||
|
|
||||||
a. Attribution.
|
a. Attribution.
|
||||||
|
|
||||||
1. If You Share the Licensed Material, You must:
|
1. If You Share the Licensed Material (including in modified
|
||||||
|
form), You must:
|
||||||
|
|
||||||
a. retain the following if it is supplied by the Licensor
|
a. retain the following if it is supplied by the Licensor
|
||||||
with the Licensed Material:
|
with the Licensed Material:
|
||||||
@@ -196,20 +271,35 @@ following conditions.
|
|||||||
Public License, and include the text of, or the URI or
|
Public License, and include the text of, or the URI or
|
||||||
hyperlink to, this Public License.
|
hyperlink to, this Public License.
|
||||||
|
|
||||||
For the avoidance of doubt, You do not have permission under
|
|
||||||
this Public License to Share Adapted Material.
|
|
||||||
|
|
||||||
2. You may satisfy the conditions in Section 3(a)(1) in any
|
2. You may satisfy the conditions in Section 3(a)(1) in any
|
||||||
reasonable manner based on the medium, means, and context in
|
reasonable manner based on the medium, means, and context in
|
||||||
which You Share the Licensed Material. For example, it may be
|
which You Share the Licensed Material. For example, it may be
|
||||||
reasonable to satisfy the conditions by providing a URI or
|
reasonable to satisfy the conditions by providing a URI or
|
||||||
hyperlink to a resource that includes the required
|
hyperlink to a resource that includes the required
|
||||||
information.
|
information.
|
||||||
|
|
||||||
3. If requested by the Licensor, You must remove any of the
|
3. If requested by the Licensor, You must remove any of the
|
||||||
information required by Section 3(a)(1)(A) to the extent
|
information required by Section 3(a)(1)(A) to the extent
|
||||||
reasonably practicable.
|
reasonably practicable.
|
||||||
|
|
||||||
|
b. ShareAlike.
|
||||||
|
|
||||||
|
In addition to the conditions in Section 3(a), if You Share
|
||||||
|
Adapted Material You produce, the following conditions also apply.
|
||||||
|
|
||||||
|
1. The Adapter's License You apply must be a Creative Commons
|
||||||
|
license with the same License Elements, this version or
|
||||||
|
later, or a BY-NC-SA Compatible License.
|
||||||
|
|
||||||
|
2. You must include the text of, or the URI or hyperlink to, the
|
||||||
|
Adapter's License You apply. You may satisfy this condition
|
||||||
|
in any reasonable manner based on the medium, means, and
|
||||||
|
context in which You Share Adapted Material.
|
||||||
|
|
||||||
|
3. You may not offer or impose any additional or different terms
|
||||||
|
or conditions on, or apply any Effective Technological
|
||||||
|
Measures to, Adapted Material that restrict exercise of the
|
||||||
|
rights granted under the Adapter's License You apply.
|
||||||
|
|
||||||
|
|
||||||
Section 4 -- Sui Generis Database Rights.
|
Section 4 -- Sui Generis Database Rights.
|
||||||
|
|
||||||
@@ -219,12 +309,13 @@ apply to Your use of the Licensed Material:
|
|||||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
||||||
to extract, reuse, reproduce, and Share all or a substantial
|
to extract, reuse, reproduce, and Share all or a substantial
|
||||||
portion of the contents of the database for NonCommercial purposes
|
portion of the contents of the database for NonCommercial purposes
|
||||||
only and provided You do not Share Adapted Material;
|
only;
|
||||||
|
|
||||||
b. if You include all or a substantial portion of the database
|
b. if You include all or a substantial portion of the database
|
||||||
contents in a database in which You have Sui Generis Database
|
contents in a database in which You have Sui Generis Database
|
||||||
Rights, then the database in which You have Sui Generis Database
|
Rights, then the database in which You have Sui Generis Database
|
||||||
Rights (but not its individual contents) is Adapted Material; and
|
Rights (but not its individual contents) is Adapted Material,
|
||||||
|
including for purposes of Section 3(b); and
|
||||||
|
|
||||||
c. You must comply with the conditions in Section 3(a) if You Share
|
c. You must comply with the conditions in Section 3(a) if You Share
|
||||||
all or a substantial portion of the contents of the database.
|
all or a substantial portion of the contents of the database.
|
||||||
@@ -345,3 +436,4 @@ the avoidance of doubt, this paragraph does not form part of the
|
|||||||
public licenses.
|
public licenses.
|
||||||
|
|
||||||
Creative Commons may be contacted at creativecommons.org.
|
Creative Commons may be contacted at creativecommons.org.
|
||||||
|
|
||||||
|
|||||||
+13
@@ -370,3 +370,16 @@ distclean-local:
|
|||||||
rm -rf autom4te.cache
|
rm -rf autom4te.cache
|
||||||
rm -rf $(DIST_DIR)
|
rm -rf $(DIST_DIR)
|
||||||
rm -rf tmp/
|
rm -rf tmp/
|
||||||
|
|
||||||
|
|
||||||
|
SWAG_OUTDIR = ./
|
||||||
|
SWAG_OPTS = --parseDependency \
|
||||||
|
--parseDepth 3 \
|
||||||
|
--exclude pkg,vendor \
|
||||||
|
--outputTypes yaml \
|
||||||
|
--output $(SWAG_OUTDIR)
|
||||||
|
|
||||||
|
apidoc:
|
||||||
|
mkdir -p $(SWAG_OUTDIR)
|
||||||
|
$(SWAG) init $(SWAG_OPTS) -g ./cmd/mstored/main.go
|
||||||
|
|
||||||
|
|||||||
+12
@@ -289,6 +289,7 @@ SHELL = @SHELL@
|
|||||||
SORT = @SORT@
|
SORT = @SORT@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
SUDO = @SUDO@
|
SUDO = @SUDO@
|
||||||
|
SWAG = @SWAG@
|
||||||
UNIQ = @UNIQ@
|
UNIQ = @UNIQ@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
XARGS = @XARGS@
|
XARGS = @XARGS@
|
||||||
@@ -541,6 +542,13 @@ CHART_NAME = $(PACKAGE_NAME)-$(PACKAGE_VERSION).tgz
|
|||||||
FREEBSD_LOCALBASE = /usr/local
|
FREEBSD_LOCALBASE = /usr/local
|
||||||
FREEBSD_RCDIR = $(FREEBSD_LOCALBASE)/etc/rc.d
|
FREEBSD_RCDIR = $(FREEBSD_LOCALBASE)/etc/rc.d
|
||||||
LINUX_SYSTEMDDIR = /lib/systemd/system
|
LINUX_SYSTEMDDIR = /lib/systemd/system
|
||||||
|
SWAG_OUTDIR = ./
|
||||||
|
SWAG_OPTS = --parseDependency \
|
||||||
|
--parseDepth 3 \
|
||||||
|
--exclude pkg,vendor \
|
||||||
|
--outputTypes yaml \
|
||||||
|
--output $(SWAG_OUTDIR)
|
||||||
|
|
||||||
all: all-recursive
|
all: all-recursive
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
@@ -1202,6 +1210,10 @@ distclean-local:
|
|||||||
rm -rf $(DIST_DIR)
|
rm -rf $(DIST_DIR)
|
||||||
rm -rf tmp/
|
rm -rf tmp/
|
||||||
|
|
||||||
|
apidoc:
|
||||||
|
mkdir -p $(SWAG_OUTDIR)
|
||||||
|
$(SWAG) init $(SWAG_OPTS) -g ./cmd/mstored/main.go
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
.NOEXPORT:
|
.NOEXPORT:
|
||||||
|
|||||||
@@ -11,11 +11,22 @@ With the application you can store and share
|
|||||||
|
|
||||||
Copyright 2026 Oleg Borodin <onborodin@gmail.com>
|
Copyright 2026 Oleg Borodin <onborodin@gmail.com>
|
||||||
|
|
||||||
This work is published and licensed under a Creative Commons
|
This work is published and licensed under a Creative CommonsAttribution-NonCommercial-ShareAlike 4.0 International License.
|
||||||
Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
|
||||||
|
|
||||||
Distribution of this work is permitted, but commercial use and
|
* Attribution — You must give appropriate credit,
|
||||||
modifications are strictly prohibited.
|
provide a link to the license, and indicate if changes
|
||||||
|
were made. You may do so in any reasonable manner,
|
||||||
|
but not in any way that suggests the licensor endorses
|
||||||
|
you or your use.
|
||||||
|
|
||||||
|
* NonCommercial — You may not use the material for commercial purposes.
|
||||||
|
|
||||||
|
* ShareAlike — If you remix, transform, or build upon the material,
|
||||||
|
you must distribute your contributions under the same license
|
||||||
|
as the original.
|
||||||
|
|
||||||
|
Distribution of this work is permitted, but commercial usu are
|
||||||
|
strictly prohibited.
|
||||||
|
|
||||||
## Copyright RU
|
## Copyright RU
|
||||||
|
|
||||||
@@ -24,16 +35,21 @@ modifications are strictly prohibited.
|
|||||||
Это произведение распространяется под лицензией Creative Commons
|
Это произведение распространяется под лицензией Creative Commons
|
||||||
Attribution-NonCommercial-NoDerivatives 4.0 International License
|
Attribution-NonCommercial-NoDerivatives 4.0 International License
|
||||||
|
|
||||||
Разрешается распространение, но запрещаются коммерческое использование
|
Разрешается распространение, при условии указания автора, произведенных изменений
|
||||||
и изменения данного произведения.
|
и сохранении лицензии, но запрещаются коммерческое использование
|
||||||
|
данного произведения.
|
||||||
|
|
||||||
Вы можете свободно делиться, то есть копировать, распространять и передавать
|
Вы можете свободно делиться, то есть копировать, распространять и передавать
|
||||||
другим лицам данное произведение при обязательном соблюдении следующих условий:
|
другим лицам данное произведение при обязательном соблюдении следующих условий:
|
||||||
|
|
||||||
* Атрибуция: Вы должны атрибутировать произведение (указывать автора и источник)
|
* Атрибуция: Вы должны атрибутировать произведение (указывать автора и источник)
|
||||||
в порядке, предусмотренном автором или лицензиаром.
|
в порядке, предусмотренном автором или лицензиаром.
|
||||||
* Некоммерческое использование: Вы не можете использовать это произведение
|
|
||||||
в коммерческих целях.
|
* Некоммерческое использование: Вы не можете использовать это произведение
|
||||||
* Без производных произведений: Вы не можете изменять, преобразовывать или брать
|
в коммерческих целях, в целях получения выгоды или оплаты.
|
||||||
за основу это произведение.
|
|
||||||
|
* Распостранять аналогично: Если вы перерабатываете, преобразуете или
|
||||||
|
создаете производные произведения на основе данного материала,
|
||||||
|
вы должны распространять свои результаты на условиях той же лицензии,
|
||||||
|
что и оригинал.
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,19 @@ import (
|
|||||||
|
|
||||||
const zeroContentLength = "0"
|
const zeroContentLength = "0"
|
||||||
|
|
||||||
|
// GetProperty godoc
|
||||||
|
//
|
||||||
|
// @Summary Get file info
|
||||||
|
// @Description Get file info
|
||||||
|
// @Tags file
|
||||||
|
// @Param filepath path string true "File path"
|
||||||
|
// @Success 200
|
||||||
|
// @Failure 404,405
|
||||||
|
// @Router /v3/file/{filepath} [HEAD]
|
||||||
|
// @Header 200 {int64} Content-Size "File size"
|
||||||
|
// @Header 200 {string} Content-Digest "File digest"
|
||||||
|
// @Header 200 {string} Content-Name "File name"
|
||||||
|
// @Header 200 {string} Content-Collection "File collection"
|
||||||
func (hand *Handler) FileInfo(rctx *router.Context) {
|
func (hand *Handler) FileInfo(rctx *router.Context) {
|
||||||
|
|
||||||
filepath, _ := rctx.GetSubpath("filepath")
|
filepath, _ := rctx.GetSubpath("filepath")
|
||||||
@@ -54,6 +67,17 @@ func (hand *Handler) FileInfo(rctx *router.Context) {
|
|||||||
rctx.SetStatus(code)
|
rctx.SetStatus(code)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetProperty godoc
|
||||||
|
//
|
||||||
|
// @Summary Store file
|
||||||
|
// @Description Store file
|
||||||
|
// @Tags file
|
||||||
|
// @Param Content-Size header int64 true "File size"
|
||||||
|
// @Param Content-Type header string true "File type"
|
||||||
|
// @Param filepath path string true "File path"
|
||||||
|
// @Success 200
|
||||||
|
// @Failure 404,405
|
||||||
|
// @Router /v3/file/{filepath} [PUT]
|
||||||
func (hand *Handler) PutFile(rctx *router.Context) {
|
func (hand *Handler) PutFile(rctx *router.Context) {
|
||||||
contentSize := rctx.GetHeader("Content-Size")
|
contentSize := rctx.GetHeader("Content-Size")
|
||||||
contentType := rctx.GetHeader("Content-Type")
|
contentType := rctx.GetHeader("Content-Type")
|
||||||
@@ -87,6 +111,17 @@ func (hand *Handler) PutFile(rctx *router.Context) {
|
|||||||
rctx.SetStatus(code)
|
rctx.SetStatus(code)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetProperty godoc
|
||||||
|
//
|
||||||
|
// @Summary Get file
|
||||||
|
// @Description Get file
|
||||||
|
// @Produce application/octet-stream
|
||||||
|
// @Produce application/vnd.cncf.helm.chart.content.v1.tar+gzip
|
||||||
|
// @Tags file
|
||||||
|
// @Param filepath path string true "File path"
|
||||||
|
// @Success 200
|
||||||
|
// @Failure 404,405
|
||||||
|
// @Router /v3/file/{filepath} [GET]
|
||||||
func (hand *Handler) GetFile(rctx *router.Context) {
|
func (hand *Handler) GetFile(rctx *router.Context) {
|
||||||
|
|
||||||
filepath, _ := rctx.GetSubpath("filepath")
|
filepath, _ := rctx.GetSubpath("filepath")
|
||||||
@@ -135,6 +170,15 @@ func (hand *Handler) GetFile(rctx *router.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetProperty godoc
|
||||||
|
//
|
||||||
|
// @Summary Delete file
|
||||||
|
// @Description Delete file
|
||||||
|
// @Tags file
|
||||||
|
// @Param filepath path string true "File path"
|
||||||
|
// @Success 200
|
||||||
|
// @Failure 404,405
|
||||||
|
// @Router /v3/file/{filepath} [DELETE]
|
||||||
func (hand *Handler) DeleteFile(rctx *router.Context) {
|
func (hand *Handler) DeleteFile(rctx *router.Context) {
|
||||||
|
|
||||||
filepath, _ := rctx.GetSubpath("filepath")
|
filepath, _ := rctx.GetSubpath("filepath")
|
||||||
@@ -162,6 +206,16 @@ func (hand *Handler) DeleteFile(rctx *router.Context) {
|
|||||||
rctx.SetStatus(code)
|
rctx.SetStatus(code)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetProperty godoc
|
||||||
|
//
|
||||||
|
// @Summary List files
|
||||||
|
// @Description List files
|
||||||
|
// @Tags file
|
||||||
|
// @Param path path string true "File path"
|
||||||
|
// @Success 200 {array} descr.File
|
||||||
|
// @Failure 404,405
|
||||||
|
// @Router /v3/files/{path} [GET]
|
||||||
|
// @Produce application/json
|
||||||
func (hand *Handler) ListFiles(rctx *router.Context) {
|
func (hand *Handler) ListFiles(rctx *router.Context) {
|
||||||
|
|
||||||
filepath, _ := rctx.GetSubpath("filepath")
|
filepath, _ := rctx.GetSubpath("filepath")
|
||||||
@@ -200,6 +254,16 @@ func (hand *Handler) ListFiles(rctx *router.Context) {
|
|||||||
rctx.SendJSON(code, res.Files)
|
rctx.SendJSON(code, res.Files)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetProperty godoc
|
||||||
|
//
|
||||||
|
// @Summary List collections
|
||||||
|
// @Description List collections
|
||||||
|
// @Tags file
|
||||||
|
// @Param path path string true "Collection path"
|
||||||
|
// @Success 200 {array} string
|
||||||
|
// @Failure 404,405
|
||||||
|
// @Router /v3/collections/{path} [GET]
|
||||||
|
// @Produce application/json
|
||||||
func (hand *Handler) ListCollections(rctx *router.Context) {
|
func (hand *Handler) ListCollections(rctx *router.Context) {
|
||||||
|
|
||||||
cpath, _ := rctx.GetSubpath("path")
|
cpath, _ := rctx.GetSubpath("path")
|
||||||
@@ -237,6 +301,15 @@ func (hand *Handler) ListCollections(rctx *router.Context) {
|
|||||||
rctx.SendJSON(code, res.Collections)
|
rctx.SendJSON(code, res.Collections)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetProperty godoc
|
||||||
|
//
|
||||||
|
// @Summary Delete collections
|
||||||
|
// @Description Delete collections
|
||||||
|
// @Tags file
|
||||||
|
// @Param path path string true "Collection path"
|
||||||
|
// @Success 200
|
||||||
|
// @Failure 404,405
|
||||||
|
// @Router /v3/collection/{path} [DELETE]
|
||||||
func (hand *Handler) DeleteCollection(rctx *router.Context) {
|
func (hand *Handler) DeleteCollection(rctx *router.Context) {
|
||||||
|
|
||||||
cpath, _ := rctx.GetSubpath("path")
|
cpath, _ := rctx.GetSubpath("path")
|
||||||
|
|||||||
@@ -26,12 +26,12 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: config-volume
|
- name: config-volume
|
||||||
mountPath: /app/etc/mstore
|
mountPath: /app/etc/mstore
|
||||||
# - name: db-volume
|
- name: db-volume
|
||||||
# mountPath: /var/lib
|
mountPath: /var/lib
|
||||||
volumes:
|
volumes:
|
||||||
- name: config-volume
|
- name: config-volume
|
||||||
configMap:
|
configMap:
|
||||||
name: mstored-config
|
name: mstored-config
|
||||||
# - name: db-volume
|
- name: db-volume
|
||||||
# persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
# claimName: mstore-data
|
claimName: mstore-data
|
||||||
|
|||||||
@@ -3,11 +3,31 @@
|
|||||||
*/
|
*/
|
||||||
package main
|
package main
|
||||||
|
|
||||||
|
// @title Service API
|
||||||
|
// @version 1.0
|
||||||
|
// @description API documentation
|
||||||
|
|
||||||
|
// @contact.name API Support
|
||||||
|
// @contact.url http://www.swagger.io/support
|
||||||
|
// @contact.email support@swagger.io
|
||||||
|
|
||||||
|
// @license.name Apache 2.0
|
||||||
|
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
// @query.collection.format multi
|
||||||
|
|
||||||
|
// @host localhost
|
||||||
|
// @basePath /
|
||||||
|
// @schemes http https
|
||||||
|
|
||||||
|
// @query.collection.format multi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"mstore/app/logger"
|
"mstore/app/logger"
|
||||||
"mstore/cmd/mstored/starter"
|
"mstore/cmd/mstored/starter"
|
||||||
|
|
||||||
|
_ "mstore/app/handler"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
@@ -631,6 +631,7 @@ build_vendor
|
|||||||
build_cpu
|
build_cpu
|
||||||
build
|
build
|
||||||
CP
|
CP
|
||||||
|
SWAG
|
||||||
DPKGSOURCE
|
DPKGSOURCE
|
||||||
DBUILDPACKAGE
|
DBUILDPACKAGE
|
||||||
HELM
|
HELM
|
||||||
@@ -3404,6 +3405,58 @@ fi
|
|||||||
test -n "$DPKGSOURCE" && break
|
test -n "$DPKGSOURCE" && break
|
||||||
done
|
done
|
||||||
|
|
||||||
|
for ac_prog in swag true
|
||||||
|
do
|
||||||
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
|
set dummy $ac_prog; ac_word=$2
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||||
|
printf %s "checking for $ac_word... " >&6; }
|
||||||
|
if test ${ac_cv_path_SWAG+y}
|
||||||
|
then :
|
||||||
|
printf %s "(cached) " >&6
|
||||||
|
else case e in #(
|
||||||
|
e) case $SWAG in
|
||||||
|
[\\/]* | ?:[\\/]*)
|
||||||
|
ac_cv_path_SWAG="$SWAG" # Let the user override the test with a path.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
|
for as_dir in $PATH
|
||||||
|
do
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
case $as_dir in #(((
|
||||||
|
'') as_dir=./ ;;
|
||||||
|
*/) ;;
|
||||||
|
*) as_dir=$as_dir/ ;;
|
||||||
|
esac
|
||||||
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
|
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
|
||||||
|
ac_cv_path_SWAG="$as_dir$ac_word$ac_exec_ext"
|
||||||
|
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
|
||||||
|
break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
SWAG=$ac_cv_path_SWAG
|
||||||
|
if test -n "$SWAG"; then
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SWAG" >&5
|
||||||
|
printf "%s\n" "$SWAG" >&6; }
|
||||||
|
else
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
printf "%s\n" "no" >&6; }
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
test -n "$SWAG" && break
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for ac_prog in gcp cp
|
for ac_prog in gcp cp
|
||||||
do
|
do
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ AC_PATH_PROGS([PODMAN],[podman true])
|
|||||||
AC_PATH_PROGS([HELM],[helm true])
|
AC_PATH_PROGS([HELM],[helm true])
|
||||||
AC_PATH_PROGS([DBUILDPACKAGE],[dpkg-buildpackage true])
|
AC_PATH_PROGS([DBUILDPACKAGE],[dpkg-buildpackage true])
|
||||||
AC_PATH_PROGS([DPKGSOURCE],[dpkg-source true])
|
AC_PATH_PROGS([DPKGSOURCE],[dpkg-source true])
|
||||||
|
AC_PATH_PROGS([SWAG],[swag true])
|
||||||
|
|
||||||
|
|
||||||
AC_PATH_PROGS([CP],[gcp cp])
|
AC_PATH_PROGS([CP],[gcp cp])
|
||||||
if test -z "$CP"; then
|
if test -z "$CP"; then
|
||||||
|
|||||||
@@ -202,6 +202,7 @@ SHELL = @SHELL@
|
|||||||
SORT = @SORT@
|
SORT = @SORT@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
SUDO = @SUDO@
|
SUDO = @SUDO@
|
||||||
|
SWAG = @SWAG@
|
||||||
UNIQ = @UNIQ@
|
UNIQ = @UNIQ@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
XARGS = @XARGS@
|
XARGS = @XARGS@
|
||||||
|
|||||||
Reference in New Issue
Block a user