Skip to content

Commit f7e1534

Browse files
authored
New Crowdin updates (#12)
* New translations README.md (Chinese Simplified) * New translations cos.md (Chinese Simplified) * New translations s3.md (Chinese Simplified) * New translations qingstor.md (Chinese Simplified) * New translations oss.md (Chinese Simplified) * New translations kodo.md (Chinese Simplified) * New translations gcs.md (Chinese Simplified) * New translations fs.md (Chinese Simplified) * New translations dropbox.md (Chinese Simplified) * New translations azblob.md (Chinese Simplified) * New translations README.md (Chinese Simplified) * New translations README.md (Chinese Simplified) * New translations storager.md (Chinese Simplified) * New translations statistician.md (Chinese Simplified) * New translations servicer.md (Chinese Simplified) * New translations segmenter.md (Chinese Simplified) * New translations reacher.md (Chinese Simplified) * New translations prefix_segments_lister.md (Chinese Simplified) * New translations prefix_lister.md (Chinese Simplified) * New translations uss.md (Chinese Simplified) * New translations footer.json (Chinese Simplified) * New translations current.json (Chinese Simplified) * New translations code.json (Chinese Simplified) * New translations navbar.json (Chinese Simplified)
1 parent b054a9c commit f7e1534

File tree

24 files changed

+813
-0
lines changed

24 files changed

+813
-0
lines changed

i18n/zh_Hans/code.json

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
{
2+
"theme.NotFound.title": {
3+
"message": "Page Not Found",
4+
"description": "The title of the 404 page"
5+
},
6+
"theme.NotFound.p1": {
7+
"message": "We could not find what you were looking for.",
8+
"description": "The first paragraph of the 404 page"
9+
},
10+
"theme.NotFound.p2": {
11+
"message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken.",
12+
"description": "The 2nd paragraph of the 404 page"
13+
},
14+
"theme.AnnouncementBar.closeButtonAriaLabel": {
15+
"message": "Close",
16+
"description": "The ARIA label for close button of announcement bar"
17+
},
18+
"theme.blog.paginator.navAriaLabel": {
19+
"message": "Blog list page navigation",
20+
"description": "The ARIA label for the blog pagination"
21+
},
22+
"theme.blog.paginator.newerEntries": {
23+
"message": "Newer Entries",
24+
"description": "The label used to navigate to the newer blog posts page (previous page)"
25+
},
26+
"theme.blog.paginator.olderEntries": {
27+
"message": "Older Entries",
28+
"description": "The label used to navigate to the older blog posts page (next page)"
29+
},
30+
"theme.blog.post.readingTime.plurals": {
31+
"message": "One min read|{readingTime} min read",
32+
"description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
33+
},
34+
"theme.tags.tagsListLabel": {
35+
"message": "Tags:",
36+
"description": "The label alongside a tag list"
37+
},
38+
"theme.blog.post.readMore": {
39+
"message": "Read More",
40+
"description": "The label used in blog post item excerpts to link to full blog posts"
41+
},
42+
"theme.blog.post.paginator.navAriaLabel": {
43+
"message": "Blog post page navigation",
44+
"description": "The ARIA label for the blog posts pagination"
45+
},
46+
"theme.blog.post.paginator.newerPost": {
47+
"message": "Newer Post",
48+
"description": "The blog post button label to navigate to the newer/previous post"
49+
},
50+
"theme.blog.post.paginator.olderPost": {
51+
"message": "Older Post",
52+
"description": "The blog post button label to navigate to the older/next post"
53+
},
54+
"theme.tags.tagsPageTitle": {
55+
"message": "Tags",
56+
"description": "The title of the tag list page"
57+
},
58+
"theme.blog.post.plurals": {
59+
"message": "One post|{count} posts",
60+
"description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
61+
},
62+
"theme.blog.tagTitle": {
63+
"message": "{nPosts} tagged with \"{tagName}\"",
64+
"description": "The title of the page for a blog tag"
65+
},
66+
"theme.tags.tagsPageLink": {
67+
"message": "View All Tags",
68+
"description": "The label of the link targeting the tag list page"
69+
},
70+
"theme.CodeBlock.copyButtonAriaLabel": {
71+
"message": "Copy code to clipboard",
72+
"description": "The ARIA label for copy code blocks button"
73+
},
74+
"theme.CodeBlock.copied": {
75+
"message": "Copied",
76+
"description": "The copied button label on code blocks"
77+
},
78+
"theme.CodeBlock.copy": {
79+
"message": "Copy",
80+
"description": "The copy button label on code blocks"
81+
},
82+
"theme.docs.sidebar.expandButtonTitle": {
83+
"message": "Expand sidebar",
84+
"description": "The ARIA label and title attribute for expand button of doc sidebar"
85+
},
86+
"theme.docs.sidebar.expandButtonAriaLabel": {
87+
"message": "Expand sidebar",
88+
"description": "The ARIA label and title attribute for expand button of doc sidebar"
89+
},
90+
"theme.docs.paginator.navAriaLabel": {
91+
"message": "Docs pages navigation",
92+
"description": "The ARIA label for the docs pagination"
93+
},
94+
"theme.docs.paginator.previous": {
95+
"message": "Previous",
96+
"description": "The label used to navigate to the previous doc"
97+
},
98+
"theme.docs.paginator.next": {
99+
"message": "Next",
100+
"description": "The label used to navigate to the next doc"
101+
},
102+
"theme.docs.sidebar.responsiveCloseButtonLabel": {
103+
"message": "Close menu",
104+
"description": "The ARIA label for close button of mobile doc sidebar"
105+
},
106+
"theme.docs.sidebar.responsiveOpenButtonLabel": {
107+
"message": "Open menu",
108+
"description": "The ARIA label for open button of mobile doc sidebar"
109+
},
110+
"theme.docs.sidebar.collapseButtonTitle": {
111+
"message": "Collapse sidebar",
112+
"description": "The title attribute for collapse button of doc sidebar"
113+
},
114+
"theme.docs.sidebar.collapseButtonAriaLabel": {
115+
"message": "Collapse sidebar",
116+
"description": "The title attribute for collapse button of doc sidebar"
117+
},
118+
"theme.docs.versions.unreleasedVersionLabel": {
119+
"message": "This is unreleased documentation for {siteTitle} {versionLabel} version.",
120+
"description": "The label used to tell the user that he's browsing an unreleased doc version"
121+
},
122+
"theme.docs.versions.unmaintainedVersionLabel": {
123+
"message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.",
124+
"description": "The label used to tell the user that he's browsing an unmaintained doc version"
125+
},
126+
"theme.docs.versions.latestVersionSuggestionLabel": {
127+
"message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).",
128+
"description": "The label userd to tell the user that he's browsing an unmaintained doc version"
129+
},
130+
"theme.docs.versions.latestVersionLinkLabel": {
131+
"message": "latest version",
132+
"description": "The label used for the latest version suggestion link label"
133+
},
134+
"theme.common.editThisPage": {
135+
"message": "Edit this page",
136+
"description": "The link label to edit the current page"
137+
},
138+
"theme.common.headingLinkTitle": {
139+
"message": "Direct link to heading",
140+
"description": "Title for link to heading"
141+
},
142+
"theme.lastUpdated.atDate": {
143+
"message": " on {date}",
144+
"description": "The words used to describe on which date a page has been last updated"
145+
},
146+
"theme.lastUpdated.byUser": {
147+
"message": " by {user}",
148+
"description": "The words used to describe by who the page has been last updated"
149+
},
150+
"theme.lastUpdated.lastUpdatedAtBy": {
151+
"message": "Last updated{atDate}{byUser}",
152+
"description": "The sentence used to display when a page has been last updated, and by who"
153+
},
154+
"theme.common.skipToMainContent": {
155+
"message": "Skip to main content",
156+
"description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
157+
},
158+
"theme.SearchPage.documentsFound.plurals": {
159+
"message": "One document found|{count} documents found",
160+
"description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
161+
},
162+
"theme.SearchPage.existingResultsTitle": {
163+
"message": "Search results for \"{query}\"",
164+
"description": "The search page title for non-empty query"
165+
},
166+
"theme.SearchPage.emptyResultsTitle": {
167+
"message": "Search the documentation",
168+
"description": "The search page title for empty query"
169+
},
170+
"theme.SearchPage.inputPlaceholder": {
171+
"message": "Type your search here",
172+
"description": "The placeholder for search page input"
173+
},
174+
"theme.SearchPage.inputLabel": {
175+
"message": "Search",
176+
"description": "The ARIA label for search page input"
177+
},
178+
"theme.SearchPage.algoliaLabel": {
179+
"message": "Search by Algolia",
180+
"description": "The ARIA label for Algolia mention"
181+
},
182+
"theme.SearchPage.noResultsText": {
183+
"message": "No results were found",
184+
"description": "The paragraph for empty search result"
185+
},
186+
"theme.SearchPage.fetchingNewResults": {
187+
"message": "Fetching new results...",
188+
"description": "The paragraph for fetching new search results"
189+
},
190+
"theme.SearchBar.label": {
191+
"message": "Search",
192+
"description": "The ARIA label and placeholder for search button"
193+
}
194+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"version.label": {
3+
"message": "Next",
4+
"description": "The label for version current"
5+
},
6+
"sidebar.docs.category.Golang": {
7+
"message": "Golang",
8+
"description": "The label for category Golang in sidebar docs"
9+
},
10+
"sidebar.docs.category.Operations": {
11+
"message": "Operations",
12+
"description": "The label for category Operations in sidebar docs"
13+
},
14+
"sidebar.docs.category.Services": {
15+
"message": "Services",
16+
"description": "The label for category Services in sidebar docs"
17+
}
18+
}
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
---
2+
slug: /
3+
title: Introduction
4+
---
5+
6+
[![Build Status](https://github.com/aos-dev/go-storage/workflows/Unittest/badge.svg?branch=master)](https://github.com/aos-dev/go-storage/actions?query=workflow%3AUnittest) [![Go dev](https://godoc.org/github.com/aos-dev/go-storage?status.svg)](https://godoc.org/github.com/aos-dev/go-storage) [![License](https://img.shields.io/badge/license-apache%20v2-blue.svg)](https://github.com/Xuanwo/storage/blob/master/LICENSE) [![Join the chat](https://img.shields.io/badge/chat-online-blue?style=flat&logo=zulip)](https://aos-dev.zulipchat.com/join/c3sqj64sp53tlau7oojg3yll/)
7+
8+
An application-oriented unified storage layer for Golang.
9+
10+
## Goal
11+
12+
- Production ready
13+
- High performance
14+
- Vendor agnostic
15+
16+
## Features
17+
18+
### Widely services support
19+
20+
- [azblob](./golang/services/azblob/): [Azure Blob storage](https://docs.microsoft.com/en-us/azure/storage/blobs/)
21+
- [cos](./golang/services/cos/): [Tencent Cloud Object Storage](https://cloud.tencent.com/product/cos)
22+
- [dropbox](./golang/services/dropbox/): [Dropbox](https://www.dropbox.com)
23+
- [fs](./golang/services/fs/): Local file system
24+
- [gcs](./golang/services/gcs/): [Google Cloud Storage](https://cloud.google.com/storage/)
25+
- [kodo](./golang/services/kodo/): [qiniu kodo](https://www.qiniu.com/products/kodo)
26+
- [oss](./golang/services/oss/): [Aliyun Object Storage](https://www.aliyun.com/product/oss)
27+
- [qingstor](./golang/services/qingstor/): [QingStor Object Storage](https://www.qingcloud.com/products/qingstor/)
28+
- [s3](./golang/services/s3/): [Amazon S3](https://aws.amazon.com/s3/)
29+
- [uss](./golang/services/uss/): [UPYUN Storage Service](https://www.upyun.com/products/file-storage)
30+
31+
### Servicer operation support
32+
33+
- List: list all Storager in service
34+
- Get: get a Storager via name
35+
- Create: create a Storager
36+
- Delete: delete a Storager
37+
38+
### Storager operation support
39+
40+
Basic operations
41+
42+
- Metadata: get storager's metadata
43+
- Read: read file content
44+
- Write: write content into file
45+
- Stat: get file's metadata
46+
- Delete: delete a file or directory
47+
48+
Extended operations
49+
50+
- Copy: copy a file inside storager
51+
- Move: move a file inside storager
52+
- Reach: generate a public accessible url
53+
- Statistical: get storage service's statistics
54+
55+
Multiple list style support
56+
57+
- ListDir: list files and directories under a directory
58+
- ListPrefix: list files under a prefix
59+
60+
Segment/Multipart support
61+
62+
- ListPrefixSegment: list segments under a prefix
63+
- InitIndexSegment: initiate an index type segment
64+
- WriteIndexSegment: write content into an index type segment
65+
- CompleteSegment: complete a segment to create a file
66+
- AbortSegment: abort a segment
67+
68+
### File metadata support
69+
70+
Required metadata
71+
72+
- `id`: unique key in service
73+
- `name`: relative path towards service's work dir
74+
- `type`: object type cloud be `file`, `dir`, `link` or `unknown`
75+
76+
Optional metadata
77+
78+
- `size`: object's content size.
79+
- `updated_at`: object's last updated time.
80+
- `content-md5`: md5 digest as defined in [rfc2616](https://tools.ietf.org/html/rfc2616#section-14.15)
81+
- `content-type`: media type as defined in [rfc2616](https://tools.ietf.org/html/rfc2616#section-14.17)
82+
- `etag`: entity tag as defined in [rfc2616](https://tools.ietf.org/html/rfc2616#section-14.19)
83+
- `storage-class`: object's storage class
84+
85+
## Quick Start
86+
87+
```go
88+
import (
89+
"log"
90+
91+
"github.com/aos-dev/go-storage/v2"
92+
"github.com/aos-dev/go-storage/v2/pairs"
93+
"github.com/aos-dev/go-services-fs"
94+
)
95+
96+
// Init a service.
97+
store, err := fs.NewStorager(pairs.WithWorkDir("/tmp"))
98+
if err != nil {
99+
log.Fatalf("service init failed: %v", err)
100+
}
101+
102+
// Use Storager API to maintain data.
103+
var buf bytes.Buffer
104+
105+
n, err := store.Read("path/to/file", &buf)
106+
if err != nil {
107+
log.Printf("storager read: %v", err)
108+
}
109+
```
110+
111+
## Sponsor
112+
113+
<a href="https://vercel.com?utm_source=aos-dev&utm_campaign=oss">
114+
<img src="/img/vercel_logo_dark.svg" />
115+
</a>
116+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
title: Introduction
3+
---
4+
5+
## Servicer
6+
7+
[servicer](./servicer/) is used to maintain multiple storage services.
8+
9+
## Storager
10+
11+
[storager](./storager/) is the interface for storage service.
12+
13+
## Prefix Lister
14+
15+
[prefix_lister](./prefix_lister/) is the interface to list prefix.
16+
17+
## Prefix Segments Lister
18+
19+
[prefix_segments_lister](./prefix_segments_lister/) used to list prefix segments.
20+
21+
## Reacher
22+
23+
[reacher](./reacher/) used to reach an Object.
24+
25+
## Statistician
26+
27+
[statistician](./statistician/) used to get storage's statistics.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
PrefixLister is used for prefix based storage service to list objects under a prefix.
2+
3+
## ListPrefix
4+
5+
ListPrefix will return list a specific prefix.
6+
7+
Caller:
8+
9+
- prefix SHOULD NOT start with /, and SHOULD relative to workdir.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
PrefixSegmentsLister is used for prefix based storage service to list segments under a prefix.
2+
3+
## ListPrefixSegments
4+
5+
ListPrefixSegments will list segments.
6+
7+
Implementer:
8+
9+
- If prefix == "", services should return all segments.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Reacher is the interface for Reach.
2+
3+
## Reach
4+
5+
Reach will provide a way, which can reach the object.
6+
7+
Implementer:
8+
9+
- SHOULD return a publicly reachable http url.

0 commit comments

Comments
 (0)