├── .bowerrc
├── .gitignore
├── README.md
├── app.js
├── bin
└── www
├── bower.json
├── core
├── front
│ └── README.md
└── server
│ ├── config
│ ├── aliyuOss.config.js
│ ├── aliyunAccount.js
│ ├── fileManager.config.js
│ └── index.js
│ ├── controllers
│ ├── aliyunOss.controller.js
│ └── localCloud.controller.js
│ ├── errors
│ ├── bad-request-error.js
│ ├── index.js
│ ├── internal-server-error.js
│ ├── not-found-error.js
│ └── validation-error.js
│ ├── models
│ ├── aliyunOss.model.js
│ └── localCloud.model.js
│ ├── routes
│ ├── index.js
│ └── localCloud.js
│ └── utils
│ ├── header.js
│ └── pipeline.js
├── localCloudStore
├── Bucket1
│ └── folder
│ │ ├── Screen Shot 2016-02-17 at 6.31.26 PM.png
│ │ ├── Screen Shot 2016-02-17 at 6.31.28 PM.png
│ │ └── Screen Shot 2016-02-17 at 6.31.38 PM.png
├── Bucket2
│ ├── 214aa4f9-c0d5-4464-82ca-8328a6f92e29 (1).ico
│ ├── 214aa4f9-c0d5-4464-82ca-8328a6f92e29 (2).ico
│ ├── 214aa4f9-c0d5-4464-82ca-8328a6f92e29 (5).ico
│ ├── 95f183cf-4fff-475e-9269-62c6677aa0e5 (1).png
│ ├── 95f183cf-4fff-475e-9269-62c6677aa0e5.png
│ ├── TryReact
│ │ ├── 214aa4f9-c0d5-4464-82ca-8328a6f92e29 (4).ico
│ │ ├── llljlkjl
│ │ └── sdfs
│ │ │ ├── 214aa4f9-c0d5-4464-82ca-8328a6f92e29 (2).ico
│ │ │ └── sdf
│ │ │ ├── 214aa4f9-c0d5-4464-82ca-8328a6f92e29 (3).ico
│ │ │ └── new
│ │ │ └── sdf
│ │ │ └── abcb
│ │ │ └── HelloWorldabcsdf
│ │ │ ├── .flowconfig
│ │ │ ├── .gitignore
│ │ │ ├── .watchmanconfig
│ │ │ └── android
│ │ │ ├── build.gradle
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ └── sdfsdsf
└── Bucket3
│ ├── android
│ ├── 214aa4f9-c0d5-4464-82ca-8328a6f92e29 (1).ico
│ ├── 214aa4f9-c0d5-4464-82ca-8328a6f92e29 (2).ico
│ └── app
│ │ ├── build.gradle
│ │ ├── gradle
│ │ ├── ios
│ │ │ ├── HelloWorld.xcodeproj
│ │ │ │ ├── project.xcworkspace
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcuserdata
│ │ │ │ │ │ └── markstock.xcuserdatad
│ │ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ │ ├── xcshareddata
│ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── HelloWorld.xcscheme
│ │ │ │ └── xcuserdata
│ │ │ │ │ ├── markstock.xcuserdatad
│ │ │ │ │ └── xcschemes
│ │ │ │ │ │ └── xcschememanagement.plist
│ │ │ │ │ └── project.pbxproj
│ │ │ ├── HelloWorld
│ │ │ │ ├── AppDelegate.h
│ │ │ │ ├── AppDelegate.m
│ │ │ │ ├── Base.lproj
│ │ │ │ │ └── LaunchScreen.xib
│ │ │ │ ├── Images.xcassets
│ │ │ │ │ └── AppIcon.appiconset
│ │ │ │ │ │ └── Contents.json
│ │ │ │ ├── Info.plist
│ │ │ │ └── main.m
│ │ │ ├── HelloWorldTests
│ │ │ │ ├── HelloWorldTests.m
│ │ │ │ └── Info.plist
│ │ │ ├── build
│ │ │ │ ├── Build
│ │ │ │ │ └── Intermediates
│ │ │ │ │ │ ├── RCTActionSheet.build
│ │ │ │ │ │ └── Debug-iphonesimulator
│ │ │ │ │ │ │ └── RCTActionSheet.build
│ │ │ │ │ │ │ ├── Objects-normal
│ │ │ │ │ │ │ └── x86_64
│ │ │ │ │ │ │ │ ├── RCTActionSheet.LinkFileList
│ │ │ │ │ │ │ │ ├── RCTActionSheetManager.d
│ │ │ │ │ │ │ │ └── RCTActionSheetManager.dia
│ │ │ │ │ │ │ ├── RCTActionSheet-all-non-framework-target-headers.hmap
│ │ │ │ │ │ │ ├── RCTActionSheet-all-target-headers.hmap
│ │ │ │ │ │ │ ├── RCTActionSheet-generated-files.hmap
│ │ │ │ │ │ │ ├── RCTActionSheet-own-target-headers.hmap
│ │ │ │ │ │ │ ├── RCTActionSheet-project-headers.hmap
│ │ │ │ │ │ │ ├── RCTActionSheet.hmap
│ │ │ │ │ │ │ └── dgph
│ │ │ │ │ │ ├── RCTImage.build
│ │ │ │ │ │ └── Debug-iphonesimulator
│ │ │ │ │ │ │ └── RCTImage.build
│ │ │ │ │ │ │ ├── Objects-normal
│ │ │ │ │ │ │ └── x86_64
│ │ │ │ │ │ │ │ ├── RCTImage.LinkFileList
│ │ │ │ │ │ │ │ ├── RCTImageStoreManager.d
│ │ │ │ │ │ │ │ ├── RCTImageStoreManager.dia
│ │ │ │ │ │ │ │ ├── RCTImageViewManager.d
│ │ │ │ │ │ │ │ ├── RCTImageViewManager.dia
│ │ │ │ │ │ │ │ ├── RCTVirtualImageManager.d
│ │ │ │ │ │ │ │ └── RCTVirtualImageManager.dia
│ │ │ │ │ │ │ ├── RCTImage-all-non-framework-target-headers.hmap
│ │ │ │ │ │ │ ├── RCTImage-all-target-headers.hmap
│ │ │ │ │ │ │ ├── RCTImage-generated-files.hmap
│ │ │ │ │ │ │ ├── RCTImage-own-target-headers.hmap
│ │ │ │ │ │ │ ├── RCTImage-project-headers.hmap
│ │ │ │ │ │ │ ├── RCTImage.hmap
│ │ │ │ │ │ │ └── dgph
│ │ │ │ │ │ ├── RCTLinking.build
│ │ │ │ │ │ └── Debug-iphonesimulator
│ │ │ │ │ │ │ └── RCTLinking.build
│ │ │ │ │ │ │ ├── Objects-normal
│ │ │ │ │ │ │ └── x86_64
│ │ │ │ │ │ │ │ ├── RCTLinking.LinkFileList
│ │ │ │ │ │ │ │ ├── RCTLinkingManager.d
│ │ │ │ │ │ │ │ └── RCTLinkingManager.dia
│ │ │ │ │ │ │ ├── RCTLinking-all-non-framework-target-headers.hmap
│ │ │ │ │ │ │ ├── RCTLinking-all-target-headers.hmap
│ │ │ │ │ │ │ ├── RCTLinking-generated-files.hmap
│ │ │ │ │ │ │ ├── RCTLinking-own-target-headers.hmap
│ │ │ │ │ │ │ ├── RCTLinking-project-headers.hmap
│ │ │ │ │ │ │ ├── RCTLinking.hmap
│ │ │ │ │ │ │ └── dgph
│ │ │ │ │ │ └── RCTNetwork.build
│ │ │ │ │ │ └── Debug-iphonesimulator
│ │ │ │ │ │ └── RCTNetwork.build
│ │ │ │ │ │ ├── Objects-normal
│ │ │ │ │ │ └── x86_64
│ │ │ │ │ │ │ └── RCTNetwork.LinkFileList
│ │ │ │ │ │ ├── RCTNetwork-all-non-framework-target-headers.hmap
│ │ │ │ │ │ ├── RCTNetwork-all-target-headers.hmap
│ │ │ │ │ │ ├── RCTNetwork-generated-files.hmap
│ │ │ │ │ │ ├── RCTNetwork-own-target-headers.hmap
│ │ │ │ │ │ ├── RCTNetwork-project-headers.hmap
│ │ │ │ │ │ ├── RCTNetwork.hmap
│ │ │ │ │ │ └── dgph
│ │ │ │ ├── ModuleCache
│ │ │ │ │ ├── Session.modulevalidation
│ │ │ │ │ ├── X4M7VRHEEETK
│ │ │ │ │ │ ├── CFNetwork-N94D31PLFESQ.pcm
│ │ │ │ │ │ ├── CFNetwork-N94D31PLFESQ.pcm.timestamp
│ │ │ │ │ │ ├── CoreFoundation-3MOS9MZDR6J1P.pcm
│ │ │ │ │ │ ├── CoreFoundation-3MOS9MZDR6J1P.pcm.timestamp
│ │ │ │ │ │ ├── CoreGraphics-N94D31PLFESQ.pcm
│ │ │ │ │ │ ├── CoreGraphics-N94D31PLFESQ.pcm.timestamp
│ │ │ │ │ │ ├── CoreImage-N94D31PLFESQ.pcm
│ │ │ │ │ │ ├── CoreImage-N94D31PLFESQ.pcm.timestamp
│ │ │ │ │ │ ├── CoreText-N94D31PLFESQ.pcm
│ │ │ │ │ │ ├── CoreText-N94D31PLFESQ.pcm.timestamp
│ │ │ │ │ │ ├── CoreVideo-2LUXD6OZSQPF.pcm
│ │ │ │ │ │ ├── CoreVideo-2LUXD6OZSQPF.pcm.timestamp
│ │ │ │ │ │ ├── Darwin-N0EKDJGHFAYB.pcm
│ │ │ │ │ │ ├── Darwin-N0EKDJGHFAYB.pcm.timestamp
│ │ │ │ │ │ ├── Dispatch-2ZKKDUJ5RGF0S.pcm
│ │ │ │ │ │ ├── Dispatch-2ZKKDUJ5RGF0S.pcm.timestamp
│ │ │ │ │ │ ├── Foundation-2NNP27CGK7J4W.pcm
│ │ │ │ │ │ ├── Foundation-2NNP27CGK7J4W.pcm.timestamp
│ │ │ │ │ │ ├── ImageIO-N94D31PLFESQ.pcm
│ │ │ │ │ │ ├── ImageIO-N94D31PLFESQ.pcm.timestamp
│ │ │ │ │ │ ├── JavaScriptCore-N94D31PLFESQ.pcm
│ │ │ │ │ │ ├── JavaScriptCore-N94D31PLFESQ.pcm.timestamp
│ │ │ │ │ │ ├── MachO-1BMJAO5Q3NM3O.pcm
│ │ │ │ │ │ ├── MachO-1BMJAO5Q3NM3O.pcm.timestamp
│ │ │ │ │ │ ├── MobileCoreServices-N94D31PLFESQ.pcm
│ │ │ │ │ │ ├── MobileCoreServices-N94D31PLFESQ.pcm.timestamp
│ │ │ │ │ │ ├── ObjectiveC-1RQA2RIXJIE19.pcm
│ │ │ │ │ │ ├── ObjectiveC-1RQA2RIXJIE19.pcm.timestamp
│ │ │ │ │ │ ├── OpenGLES-JLMMBGEUW8IK.pcm
│ │ │ │ │ │ ├── OpenGLES-JLMMBGEUW8IK.pcm.timestamp
│ │ │ │ │ │ ├── QuartzCore-243GPM1WM5PQT.pcm
│ │ │ │ │ │ ├── QuartzCore-243GPM1WM5PQT.pcm.timestamp
│ │ │ │ │ │ ├── Security-T0W5HZGV3ZZ1.pcm
│ │ │ │ │ │ ├── Security-T0W5HZGV3ZZ1.pcm.timestamp
│ │ │ │ │ │ ├── UIKit-27PL4RA7HR3WK.pcm
│ │ │ │ │ │ ├── UIKit-27PL4RA7HR3WK.pcm.timestamp
│ │ │ │ │ │ ├── modules.idx
│ │ │ │ │ │ ├── os-N0EKDJGHFAYB.pcm
│ │ │ │ │ │ └── os-N0EKDJGHFAYB.pcm.timestamp
│ │ │ │ │ └── modules.timestamp
│ │ │ │ └── info.plist
│ │ │ └── src-bac
│ │ │ │ └── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── helloworld
│ │ │ │ │ └── MainActivity.java
│ │ │ │ └── res
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ └── values
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ │ ├── proguard-rules.pro
│ │ └── react.gradle
│ ├── index.android.js
│ ├── index.ios.js
│ └── package.json
├── package.json
├── public
├── assets
│ └── fileManager
│ │ ├── cloudpanel.css
│ │ ├── fileManager.js
│ │ ├── icon
│ │ ├── accdb.png
│ │ ├── avi.png
│ │ ├── bmp.png
│ │ ├── btn_icon.gif
│ │ ├── css.png
│ │ ├── docx_mac.png
│ │ ├── docx_win.png
│ │ ├── eml.png
│ │ ├── eps.png
│ │ ├── fla.png
│ │ ├── gif.png
│ │ ├── html.png
│ │ ├── icons.gif
│ │ ├── ind.png
│ │ ├── ini.png
│ │ ├── jpeg.png
│ │ ├── jsf.png
│ │ ├── large_icon.png
│ │ ├── midi.png
│ │ ├── mov.png
│ │ ├── mp3.png
│ │ ├── mpeg.png
│ │ ├── pdf.png
│ │ ├── png.png
│ │ ├── pptx_mac.png
│ │ ├── pptx_win.png
│ │ ├── proj.png
│ │ ├── psd.png
│ │ ├── pst.png
│ │ ├── pub.png
│ │ ├── rar.png
│ │ ├── readme.png
│ │ ├── settings.png
│ │ ├── text.png
│ │ ├── tiff.png
│ │ ├── url.png
│ │ ├── vsd.png
│ │ ├── wav.png
│ │ ├── wma.png
│ │ ├── wmv.png
│ │ ├── xlsx_mac.png
│ │ ├── xlsx_win.png
│ │ └── zip.png
│ │ ├── style
│ │ ├── fileManager.css
│ │ ├── fileManager.less
│ │ └── style.css
│ │ └── templates
│ │ └── Main.template.html
├── javascripts
│ └── main.js
└── stylesheets
│ └── style.css
├── screenshot
├── Screen Shot 2016-02-17 at 6.31.26 PM.png
├── Screen Shot 2016-02-17 at 6.31.28 PM.png
├── Screen Shot 2016-02-17 at 6.31.37 PM.png
└── Screen Shot 2016-02-17 at 6.31.38 PM.png
├── uploads
├── 16c31b8b8e17e327add370988aa89dea
├── 6145a07746bc65377b9a7d87e2cdda65
├── 71cde446f4eed5721c83ec1a98741f1e
├── 7bf7616ab81c66ca8036c560f9951e8f
├── 95e7cd1145acafd5ca48ed316aa9ff5c
├── a2a31f14c5661127f623c77c78042915
├── bab94413024d52a49e0b27f8256d225c
├── c3e88daadeb1e1bc86a36125e08a0488
├── db6a03d8824a8c0c7e9d5464c4fe60ab
└── faebe36a3564715048e4b36589b40560
└── views
├── error.jade
├── index.jade
└── layout.jade
/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "analytics": true,
3 | "directory": "bower_components"
4 | }
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OS
2 | # ===========
3 | .DS_Store
4 | localCloudStore/
5 |
6 |
7 | # Node and related ecosystem
8 | # ==========================
9 | node_modules/
10 |
11 | bower_components/
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 截图
2 | 查看screenshot 目录
3 | 
4 | #Usage
5 | 打开core/server/config/fileManager.config.js 可以进行bucket配置,容器根目录设置
6 |
7 | 默认的容器为根目录下localCloudStore
8 |
9 | bower install
10 |
11 | npm install
12 |
13 | npm start
14 |
15 | 然后在浏览器中打开http://localhost:3001/
16 |
17 | #TODO
18 | 图片显示接口,可以让文件中的图片直接显示
19 |
20 | 文件下载接口
21 |
22 | #Service 配置
23 | 前台通过service和后端相应的api进行交互,每个service接口都应该遵循相应的规格,查看 <<服务器端接口配置>>
24 |
25 | # HTML
26 |
27 |
28 |
29 | # Javascript
30 | fileManager = $('#fileManager').fileManager({
31 |
32 | //配置服务
33 | Service: [{
34 |
35 | // 服务名称
36 | serviceName: 'local',
37 |
38 | // 服务的域
39 | server: 'http://localhost:3000',
40 |
41 | listBuckets: {
42 | method: 'GET',
43 | endpoint: '',
44 | },
45 |
46 | listFolders: {
47 | method: 'GET',
48 | endpoint: '',
49 | },
50 |
51 | listObjects: {
52 | method: 'GET',
53 | endpoint: '',
54 | },
55 |
56 | createFolder: {
57 | method: 'POST',
58 | endpoint: ''
59 | },
60 |
61 | deleteObject: {
62 | method: 'DELETE',
63 | endpoint: ''
64 | },
65 |
66 | reNameObject: {
67 | method: 'PUT',
68 | endpoint: ''
69 | },
70 |
71 | mvObject: {
72 | method: 'POST',
73 | endpoint: '/api/localCloud/object'
74 | }
75 | }],
76 |
77 | //
78 | Title: 'Greate Media',
79 | });
80 |
81 | #服务器端接口配置
82 |
83 | ####createFolder 创建目录
84 |
85 | 请求方法: Post
86 | Request Body: {
87 | bucket:
88 | key:
89 | Addition:[]
90 | newFolderName:
91 | }
92 |
93 | 返回结果: {
94 | newFOlderKey: 新目录的key
95 | }
96 |
97 |
98 | ####reNameObject 修改objcet的名称(可以是文件夹,也可以是文件名)
99 |
100 | 请求方法: PUT
101 | Request Body: {
102 | bucket:
103 | key:
104 | fromName:
105 | toName:
106 | Addition:[]
107 | }
108 |
109 | 返回结果: {
110 | newKey:
111 | }
112 |
113 | ####deleteObject 删除objcet(可以是文件夹, 也可以是文件名)
114 | 可以在服务器端设置删除模式,如果为strict则会强行删除目录,即便目录不为空(使用rimraf-promise模块)
115 |
116 | 如果为normal则调用fs.rmdir,如果目录不为空,则会报错
117 |
118 | 请求方法: DELETE
119 | Request Body: {
120 | bucket:
121 | key:
122 | }
123 |
124 | 返回结果: 'ok'
125 |
126 | ####mvObject 移动Object
127 | toKey 必须为目录,
128 | fromKey 可以为文件也可以为目录
129 |
130 | 请求方法: POST
131 | Request Body: {
132 | bucket:
133 | fromKey:
134 | toKey
135 | }
136 |
137 | 返回结果 {
138 | toNewKey: // 新的fromKey
139 | }
140 |
--------------------------------------------------------------------------------
/app.js:
--------------------------------------------------------------------------------
1 | var express = require('express'),
2 | path = require('path'),
3 | favicon = require('serve-favicon'),
4 | logger = require('morgan'),
5 | cookieParser = require('cookie-parser'),
6 | bodyParser = require('body-parser'),
7 | multer = require('multer')
8 |
9 | routes = require('./core/server/routes'),
10 | errors = require('./core/server/errors'),
11 |
12 | app = express();
13 |
14 | // view engine setup
15 | app.set('views', path.join(__dirname, 'views'));
16 | app.set('view engine', 'jade');
17 |
18 | // uncomment after placing your favicon in /public
19 | //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
20 | app.use(logger('dev'));
21 | app.use(bodyParser.json());
22 | app.use(bodyParser.urlencoded({ extended: false }));
23 | app.use(cookieParser());
24 |
25 |
26 | app.use(express.static(path.join(__dirname, 'public')));
27 | app.use(express.static(path.join(__dirname, 'bower_components')));
28 |
29 | app.use('/', routes);
30 |
31 | // catch 404 and forward to error handler
32 | app.use(function(req, res, next) {
33 | var err = new Error('Not Found');
34 | err.status = 404;
35 | next(err);
36 | });
37 |
38 |
39 | // Error handler
40 | app.use(function(err, req, res, next) {
41 | if(!err) return next();
42 | errors.handleAPIError(err, req, res, next);
43 | });
44 |
45 |
46 | module.exports = app;
47 |
--------------------------------------------------------------------------------
/bin/www:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | /**
4 | * Module dependencies.
5 | */
6 |
7 | var app = require('../app');
8 | var debug = require('debug')('myapp:server');
9 | var http = require('http');
10 |
11 | /**
12 | * Get port from environment and store in Express.
13 | */
14 |
15 | var port = normalizePort(process.env.PORT || '3001');
16 | app.set('port', port);
17 |
18 | /**
19 | * Create HTTP server.
20 | */
21 |
22 | var server = http.createServer(app);
23 |
24 | /**
25 | * Listen on provided port, on all network interfaces.
26 | */
27 |
28 | server.listen(port);
29 | server.on('error', onError);
30 | server.on('listening', onListening);
31 |
32 | /**
33 | * Normalize a port into a number, string, or false.
34 | */
35 |
36 | function normalizePort(val) {
37 | var port = parseInt(val, 10);
38 |
39 | if (isNaN(port)) {
40 | // named pipe
41 | return val;
42 | }
43 |
44 | if (port >= 0) {
45 | // port number
46 | return port;
47 | }
48 |
49 | return false;
50 | }
51 |
52 | /**
53 | * Event listener for HTTP server "error" event.
54 | */
55 |
56 | function onError(error) {
57 | if (error.syscall !== 'listen') {
58 | throw error;
59 | }
60 |
61 | var bind = typeof port === 'string'
62 | ? 'Pipe ' + port
63 | : 'Port ' + port;
64 |
65 | // handle specific listen errors with friendly messages
66 | switch (error.code) {
67 | case 'EACCES':
68 | console.error(bind + ' requires elevated privileges');
69 | process.exit(1);
70 | break;
71 | case 'EADDRINUSE':
72 | console.error(bind + ' is already in use');
73 | process.exit(1);
74 | break;
75 | default:
76 | throw error;
77 | }
78 | }
79 |
80 | /**
81 | * Event listener for HTTP server "listening" event.
82 | */
83 |
84 | function onListening() {
85 | var addr = server.address();
86 | var bind = typeof addr === 'string'
87 | ? 'pipe ' + addr
88 | : 'port ' + addr.port;
89 | debug('Listening on ' + bind);
90 | }
91 |
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cloudPanel",
3 | "version": "0.0.0",
4 | "directory": "bower_components",
5 | "description": "cloudPanel can manage all the could for you",
6 | "dependencies": {
7 | "jquery": "~2.2.0",
8 | "jquery-ui": "~1.11.4",
9 | "underscore": "~1.8.3",
10 | "jquery-tmpl": "*",
11 | "jsrender": "^0.9.72"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/core/front/README.md:
--------------------------------------------------------------------------------
1 | 添加前台代码在此
2 |
--------------------------------------------------------------------------------
/core/server/config/aliyuOss.config.js:
--------------------------------------------------------------------------------
1 | var path = require('path'),
2 | ALY = require('aliyun-sdk'),
3 | ALYAccount = require('./aliyunAccount'),
4 | aliyunOssSetting = [];
5 |
6 | if (!ALYAccount) {
7 | console.error('please set aliyun Account information');
8 | process.exit(-1);
9 | }
10 |
11 | if (!ALYAccount.endpoint || ALYAccount.endpoint.length <= 0) {
12 | console.error('endpoint can not be empty');
13 | }
14 |
15 | for (var i = 0; i < ALYAccount.endpoint.length ; i++ ){
16 | aliyunOssSetting[ALYAccount.endpoint[i]] = new ALY.OSS({
17 | accessKeyId: ALYAccount.accessKeyId,
18 | secretAccessKey: ALYAccount.secretAccessKey,
19 | securityToken: '',
20 | endpoint: ALYAccount.endpoint[i],
21 | apiVersion: '2013-10-15'
22 | });
23 | }
24 |
25 | module.exports = { aliyunOssSetting: aliyunOssSetting };
26 |
--------------------------------------------------------------------------------
/core/server/config/aliyunAccount.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | accessKeyId: '',
3 | secretAccessKey: '',
4 | securityToken: '',
5 | endpoint: [
6 | 'http://oss-cn-hangzhou.aliyuncs.com',
7 | 'http://oss-cn-qingdao.aliyuncs.com',
8 | 'http://oss-cn-shenzhen.aliyuncs.com'
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/core/server/config/fileManager.config.js:
--------------------------------------------------------------------------------
1 | var path = require('path'),
2 | localCloudSettings;
3 |
4 | // 本地云设置 ,bucket由服务器定义
5 | localCloudSettings = {
6 |
7 | // 域
8 | domain: 'http://localhost:3001/',
9 |
10 | // 网站的根路径
11 | rootPath: path.join(path.resolve(), 'localCloudStore'),
12 |
13 | // 允许返回的文件格式
14 | // 如果为空则返回所有文件
15 | extensionWhiteList: [
16 | // 'jpg',
17 | // 'jpeg',
18 | // 'png',
19 | // 'txt',
20 | // 'c'
21 | ],
22 |
23 | // 文件最大上传大小, 默认为5MB
24 | maxUploadSize: 5 * 1024 * 1024,
25 |
26 | // 定义bucket
27 | buckets: [{
28 | path: '/Bucket1', //相对于网站根目录的路径
29 | name: 'bucket1'
30 | }, {
31 | path: '/Bucket2',
32 | name: 'bucket2',
33 | }, {
34 | path: '/Bucket3',
35 | name: 'bucket3'
36 | }],
37 |
38 | // 是否显示隐藏文件
39 | showHidden: false,
40 |
41 | // 文件权限
42 | mode: '0755',
43 |
44 | // 目录删除模式
45 | // strict 强制删除模式 尝试递归删除
46 | // normal 普通删除模式 调用rmdir
47 | deleteMode: 'strict' // 强行删除模式,调用系统命令
48 | }
49 |
50 | module.exports = {localCloudSettings: localCloudSettings};
51 |
--------------------------------------------------------------------------------
/core/server/config/index.js:
--------------------------------------------------------------------------------
1 | var _ = require('lodash'),
2 | config = {};
3 | // value key
4 | _.each(['fileManager.config', 'aliyuOss.config'], function(c) {
5 | _.extend(config, require('./' + c));
6 | });
7 |
8 |
9 | module.exports = config;
10 |
--------------------------------------------------------------------------------
/core/server/controllers/aliyunOss.controller.js:
--------------------------------------------------------------------------------
1 | var aliyunOss = require('../models/aliyunOss.model'),
2 | Promise = require('bluebird'),
3 | pipeline = require('../utils/pipeline'),
4 | aliyunOssController;
5 |
6 | aliyunOssController = {
7 | listBuckets: function listBuckets(options) {
8 | function doTask(options) {
9 | return aliyunOss.listBuckets(options);
10 | }
11 | // can add more function into pipeline
12 | return pipeline([doTask], options).then(function(buckets) {
13 | return {
14 | buckets: buckets,
15 | count: buckets.length
16 | }
17 | });
18 | },
19 | listObjects: function listObjects(options) {
20 | function doTask(options) {
21 | return aliyunOss.listObjects(options);
22 | }
23 |
24 | return pipeline([doTask], options).then(function(objects) {
25 | return objects;
26 | });
27 | },
28 | };
29 | module.exports = aliyunOssController;
30 |
--------------------------------------------------------------------------------
/core/server/controllers/localCloud.controller.js:
--------------------------------------------------------------------------------
1 | var localCloudModel = require('../models/localCloud.model'),
2 | Promise = require('bluebird'),
3 | pipeline = require('../utils/pipeline'),
4 | localCloudController;
5 |
6 | localCloudController = {
7 | listBuckets: function listBuckets(options) {
8 | function doTask(options) {
9 | return localCloudModel.listBuckets(options);
10 | }
11 | // can add more function into pipeline
12 | return pipeline([doTask], options).then(function(buckets) {
13 | return {
14 | buckets: buckets,
15 | count: buckets.length
16 | }
17 | });
18 | },
19 |
20 | listFolders: function listFolders(options) {
21 | function doTask(options) {
22 | return localCloudModel.listFolders(options);
23 | }
24 | return pipeline([doTask], options).then(function(folders){
25 | return {
26 | folders: folders,
27 | count: folders.length
28 | }
29 | });
30 | },
31 |
32 | listObjects: function listObjects(options) {
33 | function doTask(options) {
34 | return localCloudModel.listObjects(options);
35 | }
36 |
37 | return pipeline([doTask], options).then(function(objects) {
38 | return objects;
39 | });
40 | },
41 |
42 | addFolder: function addFolder(object, options) {
43 | function doTask(object, options) {
44 | return localCloudModel.addFolder(object, options);
45 | }
46 |
47 | return pipeline([doTask], object, options).then(function(newFOlderKey) {
48 | return {newFOlderKey: newFOlderKey};
49 | });
50 | },
51 |
52 | reNameObject: function reNameObject(object, options) {
53 | function doTask(object, options) {
54 | return localCloudModel.reNameObject(object, options);
55 | }
56 | return pipeline([doTask], object, options).then(function(newKey) {
57 | return {newKey: newKey};
58 | });
59 | },
60 |
61 | deleteObject: function deleteObject(object, options) {
62 | function doTask(object, options) {
63 | return localCloudModel.deleteObject(object, options);
64 | }
65 | return pipeline([doTask], object, options).then(function() {
66 | return 'ok';
67 | });
68 | },
69 |
70 | mvObject: function mvObject(object, options) {
71 | function doTask(object, options) {
72 | return localCloudModel.mvObject(object, options);
73 | }
74 | return pipeline([doTask], object, options).then(function(toNewKey) {
75 | return {toNewKey: toNewKey};
76 | });
77 | },
78 |
79 | uploadFile: function uploadFile(object, options) {
80 | function doTask(object, options) {
81 | return localCloudModel.uploadFile(object, options);
82 | }
83 | return pipeline([doTask], object, options).then(function(newFileKey) {
84 | return {newFileKey: newFileKey};
85 | });
86 | },
87 |
88 | downloadFile: function downloadFile(req, res) {
89 | var options = req.query;
90 | localCloudModel.downloadFile(options, req, res);
91 | }
92 | };
93 | module.exports = localCloudController;
94 |
--------------------------------------------------------------------------------
/core/server/errors/bad-request-error.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | function BadRequestError(message) {
4 | this.message = message;
5 | this.stack = new Error().stack;
6 | this.code = 400;
7 | this.errorType = this.name;
8 | }
9 |
10 | BadRequestError.prototype = Object.create(Error.prototype);
11 | BadRequestError.prototype.name = 'BadRequestError';
12 |
13 | module.exports = BadRequestError;
14 |
--------------------------------------------------------------------------------
/core/server/errors/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | var _ = require('lodash'),
3 | path = require('path'),
4 | Promise = require('bluebird'),
5 | BadRequestError = require('./bad-request-error'),
6 | InternalServerError = require('./internal-server-error'),
7 | NotFoundError = require('./not-found-error'),
8 | ValidationError = require('./validation-error'),
9 |
10 | errors;
11 |
12 | errors = {
13 | formatHttpErrors: function formatHttpErrors(error) {
14 | var statusCode = 500,
15 | errors = [];
16 | if(!_.isArray(error)) {
17 | error = [].concat(error);
18 | }
19 | _.each(error, function each(errorItem) {
20 | var errorContent = {};
21 |
22 | statusCode = errorItem.code || 500;
23 | errorContent.message = _.isString(errorItem) ? errorItem :
24 | (_.isObject(errorItem) ? errorItem.message : 'UnKnow API');
25 | errorContent.errorType = errorItem.errorType || 'InternalServerError';
26 | errors.push(errorContent);
27 | });
28 |
29 | return {
30 | errors: errors,
31 | statusCode: statusCode
32 | }
33 | },
34 | handleAPIError: function handleAPIError(err, req, res, next) {
35 | var httpErrors = this.formatHttpErrors(err);
36 | if(err.stack) console.log(err.stack);
37 | res.status(httpErrors.statusCode).json({
38 | errors: httpErrors.errors
39 | });
40 | }
41 | };
42 |
43 | _.each([
44 | 'formatHttpErrors',
45 | 'handleAPIError'
46 | ], function(funcName) {
47 | errors[funcName] = errors[funcName].bind(errors);
48 | });
49 |
50 | module.exports = errors;
51 | module.exports.BadRequestError = BadRequestError;
52 | module.exports.InternalServerError = InternalServerError;
53 | module.exports.NotFoundError = NotFoundError;
54 | module.exports.ValidationError = ValidationError;
55 |
--------------------------------------------------------------------------------
/core/server/errors/internal-server-error.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | function InternalServerError(message) {
4 | this.message = message;
5 | this.stack = new Error().stack;
6 | this.code = 500;
7 | this.errorType = this.name;
8 | }
9 |
10 | InternalServerError.prototype = Object.create(Error.prototype);
11 | InternalServerError.prototype.name = 'InternalServerError';
12 |
13 | module.exports = InternalServerError;
14 |
--------------------------------------------------------------------------------
/core/server/errors/not-found-error.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | function NotFoundError(message) {
3 | this.message = message;
4 | this.stack = new Error().stack;
5 | this.code = 404;
6 | this.errorType = this.name;
7 | }
8 |
9 | NotFoundError.prototype = Object.create(Error.prototype);
10 | NotFoundError.prototype.name = 'NotFoundError';
11 |
12 | module.exports = NotFoundError;
13 |
--------------------------------------------------------------------------------
/core/server/errors/validation-error.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | function ValidationError(message, offendingProperty) {
4 | this.message = message;
5 | this.stack = (new Error()).stack;
6 | this.code = 422;
7 | if (offendingProperty) {
8 | this.property = offendingProperty;
9 | }
10 | this.errorType = this.name;
11 | }
12 |
13 | ValidationError.prototype = Object.create(Error.prototype);
14 | ValidationError.prototype.name = 'ValidationError';
15 |
16 | module.exports = ValidationError;
17 |
--------------------------------------------------------------------------------
/core/server/models/aliyunOss.model.js:
--------------------------------------------------------------------------------
1 | var Promise = require('bluebird'),
2 | fs = Promise.promisifyAll(require('fs')),
3 | async = require('async'),
4 | _ = require('lodash'),
5 | path = require('path'),
6 | config = require('../config'),
7 | errors = require('../errors'),
8 | rimraf = require('rimraf'),
9 | rirmafPromise = require('rimraf-promise'),
10 |
11 | localCloud;
12 |
13 | // 格式化文件大小格式
14 | function formatFileSize(size) {
15 | var unit = ['Byte', 'KB', 'GB', 'TB'],
16 | i = 0,
17 | filesize;
18 | while(size >= 1024) {
19 | size = size / 1024;
20 | i++;
21 | }
22 | filesize = size + unit[i];
23 | return size.toFixed(2) + unit[i];
24 | }
25 |
26 | function validateName(object, name) {
27 | if(_.isEmpty(object[name]))
28 | return Promise.reject(name + ' can not be empty');
29 | if(!_.isString(object[name]))
30 | return Promise.reject(name + ' must be a string');
31 | if(!/^[^\\/?%*:|"<>\.]+$/.test(object[name]))
32 | return Promise.reject(object[name] + ' is not a valid name');
33 | return Promise.resolve();
34 | }
35 |
36 | function deleteFolderRecursive(delpath) {
37 | if(fs.existsSync(delpath)) {
38 | fs.readdirSync(delpath).forEach(function(file, index){
39 | var curPath = path.join(delpath, file);
40 | if(fs.statSync(curPath).isDirectory()) {
41 | deleteFolderRecursive(curPath);
42 | } else {
43 | fs.unlinkSync(curPath);
44 | }
45 | });
46 | fs.rmdirSync(path);
47 | }
48 | return true;
49 | }
50 |
51 | // LocalCloud = function LocalCloud(settings) {
52 | // var buckets = settings.buckets,
53 | // bucket,
54 | // path,
55 | // i,
56 | // len;
57 | // if(!_.isArray(buckets))
58 | // buckets = [];
59 | // this.settings = settings;
60 | // this.buckets = {};
61 | // if(buckets) {
62 | // for(i = 0, len = buckets.length; i < len; i++) {
63 | // bucket = buckets[i];
64 | // path = settings.rootPath + bucket.path;
65 | // var stat = fs.statSync(path);
66 | // if(!stat.isDirectory())
67 | // throw new Error(path + 'is not a directory');
68 | //
69 | // // 注册bucket
70 | // this.buckets[bucket.name] = {
71 | // Endpoint: path,
72 | // Name: bucket.name,
73 | // path: path,
74 | // relativePath: bucket.path
75 | // };
76 | // }
77 | // }
78 | // };
79 | //
80 | // // 遍历params来查找options的参数的合法性
81 | // LocalCloud.prototype.validateOptions = function validateOptions(options, params, keyType) {
82 | // if(_.isString(params)) params = [params];
83 | // if(!_.isArray(params)) params = [];
84 | // for(var i = 0, len = params.length; i < len; i++) {
85 | // var param = params[i];
86 | // // 检查参数是否存在
87 | // if(!options[param] || _.isEmpty(options[param])) {
88 | // return Promise.reject(new errors.ValidationError(param + 'is required, can\'t be empty'));
89 | // }
90 | //
91 | // // check if the bucket is illegal
92 | // if(param === 'bucket') {
93 | // var bucket_find = false;
94 | // _.forEach(this.buckets, function(bucket, name) {
95 | // if(name === options.bucket) {
96 | // options.bucket = bucket;
97 | // bucket_find = true;
98 | // }
99 | // });
100 | // if(!bucket_find) return Promise.reject(new errors.ValidationError(options.bucket + 'is not existed'));
101 | // }
102 | //
103 | // // check if the key is illegal
104 | // // key can be folder or a file
105 | // if(param === 'key') {
106 | // // key 的范围只能在rootPath 下
107 | // var keyPath = path.join(options.bucket.path, options.key);
108 | // console.log('keyPath', keyPath);
109 | // if(!(new RegExp("^" + this.settings.rootPath).test(keyPath))) {
110 | // return Promise.reject(new errors.ValidationError('can not reach that place: '+keyPath));
111 | // }
112 | // options.keyPath = keyPath;
113 | // if(!fs.existsSync(keyPath)) {
114 | // return Promise.reject(new errors.NotFoundError(keyPath + ' is not exist'));
115 | // }
116 | //
117 | // if(keyType === 'folder' && !fs.statSync(keyPath).isDirectory()) {
118 | // return Promise.reject(new errors.BadRequestError(keyPath + ' is not a folder'));
119 | // } else if(keyType === 'object') {
120 | // //
121 | // } else {
122 | // options.stat = fs.statSync(keyPath);
123 | // }
124 | // return Promise.resolve(options);
125 | // }
126 | // }
127 | // return Promise.resolve(options);
128 | // }
129 | //
130 | // LocalCloud.prototype.listBuckets = function listBuckets() {
131 | // var buckets = [];
132 | // _.forEach(this.buckets, function(bucket, name) {
133 | // buckets.push({
134 | // Name: name,
135 | // // 如果为aliyun oss 则可将多余数据放入Addition中, 每次请求的时候提交
136 | // Addition: {
137 | // Endpoint: bucket.Endpoint
138 | // }
139 | // });
140 | // });
141 | // return Promise.resolve(buckets);
142 | // };
143 | //
144 | // LocalCloud.prototype.listFolders = function listFolders(options) {
145 | // var params = ['bucket', 'key'],folders=[];
146 | // console.log(options);
147 | // return this.validateOptions(options, params, 'folder')
148 | // .then(function then(options) {
149 | // return fs.readdirAsync(options.keyPath)
150 | // .then(function(files){
151 | // _.forEach(files, function(file) {
152 | // if(fs.statSync(path.join(options.keyPath, file)).isDirectory()) {
153 | // folders.push({
154 | // Key: path.join(options.key, file, '/'),
155 | // Name: file,
156 | // });
157 | // }
158 | // });
159 | // return folders;
160 | // });
161 | // });
162 | // }
163 | //
164 | // LocalCloud.prototype.listObjects = function listObjects(options) {
165 | // var params = ['bucket', 'key'],
166 | // stat,
167 | // _this = this;
168 | // return this.validateOptions(options, params, 'folder')
169 | // .then(function then(options) {
170 | // return fs.readdirAsync(options.keyPath)
171 | // .then(function(files) {
172 | // var objects = {
173 | // files: [],
174 | // folders: []
175 | // };
176 | // _.forEach(files, function(file) {
177 | // if(!_this.settings.showHidden && /^\./.test(file))
178 | // return;
179 | // stat = fs.statSync(path.join(options.keyPath, file));
180 | // if(stat.isDirectory()) {
181 | // objects.folders.push({
182 | // Key: path.join(options.key, file, '/'),
183 | // Name: file,
184 | // LastModified: stat.mtime
185 | // });
186 | // } else if(stat.isFile()) {
187 | // objects.files.push({
188 | // Key: path.join(options.key, file),
189 | // Name: file,
190 | // Size: stat.size,
191 | // LastModified: stat.mtime
192 | // });
193 | // }
194 | // });
195 | // return objects;
196 | // });
197 | // });
198 | // };
199 | //
200 | // LocalCloud.prototype.addFolder = function addFolder(object, options) {
201 | // var params = ['bucket', 'key', 'newFolderName'], newFolderPath, _this = this;
202 | // return this.validateOptions(object, params, 'folder')
203 | // .then(function then(object) {
204 | // return validateName(object, 'newFolderName')
205 | // .then(function(){
206 | // // 开始创建
207 | // newFolderPath = path.join(object.keyPath, object['newFolderName']);
208 | // return fs.mkdirAsync(newFolderPath, _this.settings.mode)
209 | // .then(function() {
210 | // return path.join(object.key, object['newFolderName'], '/');
211 | // });
212 | // });
213 | // });
214 | // };
215 | //
216 | // LocalCloud.prototype.deleteObject = function deleteObject(object) {
217 | // var params = ['bucket', 'key'], _this = this;
218 | // // options = options || {};
219 | // // options.keys = object.key || '';
220 | // return this.validateOptions(object, params)
221 | // .then(function(object) {
222 | // if(_.isEmpty(object.key) || !_.isString(object.key))
223 | // return Promise.reject(new errors.ValidationError('Invalid key'));
224 | // // 开始删除keys
225 | // if(object.stat && object.stat.isDirectory()) {
226 | // if(_this.settings.deleteMode === 'strict') {
227 | // // delete in strict mode
228 | // return rirmafPromise(object.keyPath);
229 | // } else if(_this.settings.deleteMode === 'normal') {
230 | // // delete in normal mode
231 | // return fs.rmdirAsync(object.keyPath);
232 | // }
233 | // } else if(object.stat && object.stat.isFile()) {
234 | // // we are tryint to delete a file
235 | // return rirmafPromise(object.keyPath);
236 | // } else {
237 | // // other kind of fill not allow to delte
238 | // return Promise.reject('forbidden');
239 | // }
240 | // });
241 | // }
242 | //
243 | // LocalCloud.prototype.reNameObject = function reNameObject(object, options) {
244 | // var params = ['bucket', 'key', 'fromName', 'toName'], _this = this;
245 | // return this.validateOptions(object, params)
246 | // .then(function(object) {
247 | // var fromKey = path.join(object.keyPath, object.fromName),
248 | // toKey = path.join(object.keyPath, object.toName);
249 | // return fs.renameAsync(fromKey, toKey)
250 | // .then(function() {
251 | // return path.join(object.key, object.toName);
252 | // });
253 | // });
254 | // }
255 | //
256 | // LocalCloud.prototype.uploadFile = function uploadFile(object, options) {
257 | // var params = ['bucket', 'key', 'path'], _this = this;
258 | // return this.validateOptions(object, params)
259 | // .then(function(object) {
260 | // return fs.renameAsync(path.resolve(object.path), path.join(object.keyPath, object.originalname))
261 | // .then(function() {
262 | // return path.join(object.key, object.originalname);
263 | // });
264 | // });
265 | // };
266 | //
267 | // LocalCloud.prototype.mvObject = function mvObject(object, options) {
268 | // var params = ['bucket', 'toKey', 'fromKey'],
269 | // toKeyPath,
270 | // fromKeyPath,
271 | // toKeyStat,
272 | // fromKeyStat,
273 | // fromKeyBase
274 | // _this = this;
275 | // return this.validateOptions(object, params)
276 | // .then(function(object) {
277 | // toKeyPath = path.join(object.bucket.path, object.toKey);
278 | // if(!(new RegExp("^" + _this.settings.rootPath).test(toKeyPath))) {
279 | // return Promise.reject(new errors.ValidationError('can not reach that place: '+toKeyPath));
280 | // }
281 | //
282 | // fromKeyPath = path.join(object.bucket.path, object.fromKey);
283 | // if(!(new RegExp("^" + _this.settings.rootPath).test(fromKeyPath))) {
284 | // return Promise.reject(new errors.ValidationError('can not reach that place: '+toKeyPath));
285 | // }
286 | //
287 | // if(!fs.existsSync(toKeyPath)) {
288 | // return Promise.reject(new errors.ValidationError(toKeyPath + ' is not exist'));
289 | // } else {
290 | // toKeyStat = fs.statSync(toKeyPath);
291 | // if(!toKeyStat.isDirectory()) {
292 | // return Promise.reject(new erors.ValidationError(toKeyPath + ' must be a directory'));
293 | // }
294 | // }
295 | //
296 | // if(!fs.existsSync(fromKeyPath)) {
297 | // return Promise.reject(new errors.ValidationError(fromKeyPath + 'is not exist'));
298 | // } else {
299 | // fromKeyStat = fs.statSync(fromKeyPath);
300 | // fromKeyBase = path.basename(fromKeyPath);
301 | // }
302 | //
303 | // toKeyPath = path.join(toKeyPath, fromKeyBase);
304 | // return fs.renameAsync(fromKeyPath, toKeyPath)
305 | // .then(function() {
306 | // return toKeyPath;
307 | // });
308 | //
309 | //
310 | // });
311 | // }
312 |
313 | function aliyunOss(settings) {
314 | this.aliyunOssSetting = settings;
315 | console.log(typeof this.aliyunOssSetting);
316 | }
317 |
318 | aliyunOss.prototype.listBuckets = function listBuckets(options) {
319 | var tasks = [] ,aliyunEndpoint;
320 | for( endpoint in config.aliyunOssSetting) {
321 | // 默认取第一个然后直接跳出
322 | aliyunEndpoint = config.aliyunOssSetting[endpoint];
323 | var listBuckets = Promise.promisify(aliyunEndpoint.listBuckets);
324 | aliyunEndpoint.listBuckets = listBuckets;
325 | break;
326 | }
327 | return aliyunEndpoint.listBuckets().then(function(result) {
328 | var buckets = [];
329 | _.forEach(result.Buckets, function(bucket) {
330 | buckets.push({
331 | Name: bucket.Name,
332 | Addition: bucket
333 | });
334 | });
335 | return buckets;
336 | });
337 | };
338 |
339 | aliyunOss.prototype.listObjects = function listObjects(options) {
340 | var aliyunEndpoint = this.aliyunOssSetting['http://' + options.Addition.ExtranetEndpoint];
341 | // for(fn in aliyunEndpoint){
342 | // console.log(aliyunEndpoint));
343 | // }
344 | // console.log(aliyunEndpoint[listObjects].toString());
345 | aliyunEndpoint.listObjects = Promise.promisify(aliyunEndpoint.listObjects);
346 | var dataGetter;
347 | if (options.key === '/') {
348 | dataGetter = aliyunEndpoint.listObjects({
349 | Bucket: options.bucket,
350 | Delimiter: '/'
351 | });
352 | } else {
353 | dataGetter = aliyunEndpoint.listObjects({
354 | Bucket: options.bucket,
355 | Prefix: options.key,
356 | Delimiter: '/'
357 | });
358 | }
359 | return dataGetter.then(function(result) {
360 | console.log(result);
361 | var objects = {
362 | files: [],
363 | folders: []
364 | };
365 | _.each(result.Contents, function(object) {
366 | object.Name = object.Key;
367 | object.address = 'http://' + options.bucket + '.'+options.Addition.ExtranetEndpoint + '/' +object.Key;
368 | objects.files.push(object);
369 | });
370 | _.each(result.CommonPrefixes, function(object){
371 | object.Name = object.Prefix;
372 | object.Key = object.Prefix;
373 | objects.folders.push(object);
374 | });
375 | return objects;
376 | });
377 | }
378 | module.exports = new aliyunOss(config.aliyunOssSetting);
379 |
--------------------------------------------------------------------------------
/core/server/models/localCloud.model.js:
--------------------------------------------------------------------------------
1 | var Promise = require('bluebird'),
2 | fs = Promise.promisifyAll(require('fs')),
3 | _ = require('lodash'),
4 | path = require('path'),
5 | config = require('../config'),
6 | errors = require('../errors'),
7 | rimraf = require('rimraf'),
8 | rirmafPromise = require('rimraf-promise'),
9 |
10 | localCloud;
11 |
12 | // 格式化文件大小格式
13 | function formatFileSize(size) {
14 | var unit = ['Byte', 'KB', 'GB', 'TB'],
15 | i = 0,
16 | filesize;
17 | while(size >= 1024) {
18 | size = size / 1024;
19 | i++;
20 | }
21 | filesize = size + unit[i];
22 | return size.toFixed(2) + unit[i];
23 | }
24 |
25 | function validateName(object, name) {
26 | if(_.isEmpty(object[name]))
27 | return Promise.reject(name + ' can not be empty');
28 | if(!_.isString(object[name]))
29 | return Promise.reject(name + ' must be a string');
30 | if(!/^[^\\/?%*:|"<>\.]+$/.test(object[name]))
31 | return Promise.reject(object[name] + ' is not a valid name');
32 | return Promise.resolve();
33 | }
34 |
35 | function deleteFolderRecursive(delpath) {
36 | if(fs.existsSync(delpath)) {
37 | fs.readdirSync(delpath).forEach(function(file, index){
38 | var curPath = path.join(delpath, file);
39 | if(fs.statSync(curPath).isDirectory()) {
40 | deleteFolderRecursive(curPath);
41 | } else {
42 | fs.unlinkSync(curPath);
43 | }
44 | });
45 | fs.rmdirSync(path);
46 | }
47 | return true;
48 | }
49 |
50 | LocalCloud = function LocalCloud(settings) {
51 | var buckets = settings.buckets,
52 | bucket,
53 | path,
54 | i,
55 | len;
56 | if(!_.isArray(buckets))
57 | buckets = [];
58 | this.settings = settings;
59 | this.buckets = {};
60 | if(buckets) {
61 | for(i = 0, len = buckets.length; i < len; i++) {
62 | bucket = buckets[i];
63 | path = settings.rootPath + bucket.path;
64 | var stat = fs.statSync(path);
65 | if(!stat.isDirectory())
66 | throw new Error(path + 'is not a directory');
67 |
68 | // 注册bucket
69 | this.buckets[bucket.name] = {
70 | Endpoint: path,
71 | Name: bucket.name,
72 | path: path,
73 | relativePath: bucket.path
74 | };
75 | }
76 | }
77 | };
78 |
79 | // 遍历params来查找options的参数的合法性
80 | LocalCloud.prototype.validateOptions = function validateOptions(options, params, keyType) {
81 | if(_.isString(params)) params = [params];
82 | if(!_.isArray(params)) params = [];
83 | for(var i = 0, len = params.length; i < len; i++) {
84 | var param = params[i];
85 | // 检查参数是否存在
86 | if(!options[param] || _.isEmpty(options[param])) {
87 | return Promise.reject(new errors.ValidationError(param + 'is required, can\'t be empty'));
88 | }
89 |
90 | // check if the bucket is illegal
91 | if(param === 'bucket') {
92 | var bucket_find = false;
93 | _.forEach(this.buckets, function(bucket, name) {
94 | if(name === options.bucket) {
95 | options.bucket = bucket;
96 | bucket_find = true;
97 | }
98 | });
99 | if(!bucket_find) return Promise.reject(new errors.ValidationError(options.bucket + 'is not existed'));
100 | }
101 |
102 | // check if the key is illegal
103 | // key can be folder or a file
104 | if(param === 'key') {
105 | // key 的范围只能在rootPath 下
106 | var keyPath = path.join(options.bucket.path, options.key);
107 | console.log('keyPath', keyPath);
108 | if(!(new RegExp("^" + this.settings.rootPath).test(keyPath))) {
109 | return Promise.reject(new errors.ValidationError('can not reach that place: '+keyPath));
110 | }
111 | options.keyPath = keyPath;
112 | if(!fs.existsSync(keyPath)) {
113 | return Promise.reject(new errors.NotFoundError(keyPath + ' is not exist'));
114 | }
115 |
116 | if(keyType === 'folder' && !fs.statSync(keyPath).isDirectory()) {
117 | return Promise.reject(new errors.BadRequestError(keyPath + ' is not a folder'));
118 | } else if(keyType === 'object') {
119 | //
120 | } else {
121 | options.stat = fs.statSync(keyPath);
122 | }
123 | return Promise.resolve(options);
124 | }
125 | }
126 | return Promise.resolve(options);
127 | }
128 |
129 | LocalCloud.prototype.listBuckets = function listBuckets() {
130 | var buckets = [];
131 | _.forEach(this.buckets, function(bucket, name) {
132 | buckets.push({
133 | Name: name,
134 | // 如果为aliyun oss 则可将多余数据放入Addition中, 每次请求的时候提交
135 | Addition: {
136 | Endpoint: ''
137 | }
138 | });
139 | });
140 | return Promise.resolve(buckets);
141 | };
142 |
143 | LocalCloud.prototype.listFolders = function listFolders(options) {
144 | var params = ['bucket', 'key'],folders=[];
145 | return this.validateOptions(options, params, 'folder')
146 | .then(function then(options) {
147 | return fs.readdirAsync(options.keyPath)
148 | .then(function(files){
149 | _.forEach(files, function(file) {
150 | if(fs.statSync(path.join(options.keyPath, file)).isDirectory()) {
151 | folders.push({
152 | Key: path.join(options.key, file, '/'),
153 | Name: file,
154 | });
155 | }
156 | });
157 | return folders;
158 | });
159 | });
160 | }
161 |
162 | LocalCloud.prototype.listObjects = function listObjects(options) {
163 | var params = ['bucket', 'key'],
164 | stat,
165 | _this = this;
166 | return this.validateOptions(options, params, 'folder')
167 | .then(function then(options) {
168 | return fs.readdirAsync(options.keyPath)
169 | .then(function(files) {
170 | var objects = {
171 | files: [],
172 | folders: []
173 | };
174 | _.forEach(files, function(file) {
175 | if(!_this.settings.showHidden && /^\./.test(file))
176 | return;
177 | stat = fs.statSync(path.join(options.keyPath, file));
178 | if(stat.isDirectory()) {
179 | objects.folders.push({
180 | Key: path.join(options.key, file, '/'),
181 | Name: file,
182 | LastModified: stat.mtime
183 | });
184 | } else if(stat.isFile()) {
185 | console.log(options);
186 | var address = '/api/localCloud/object?bucket=' + encodeURIComponent(options.bucket.Name);
187 | address += '&key=' + encodeURIComponent(path.join(options.key, file));
188 | console.log(address);
189 | objects.files.push({
190 | Key: path.join(options.key, file),
191 | Name: file,
192 | Size: stat.size,
193 | LastModified: stat.mtime,
194 | address: address
195 | });
196 | }
197 | });
198 | return objects;
199 | });
200 | });
201 | };
202 |
203 | LocalCloud.prototype.addFolder = function addFolder(object, options) {
204 | var params = ['bucket', 'key', 'newFolderName'], newFolderPath, _this = this;
205 | return this.validateOptions(object, params, 'folder')
206 | .then(function then(object) {
207 | return validateName(object, 'newFolderName')
208 | .then(function(){
209 | // 开始创建
210 | newFolderPath = path.join(object.keyPath, object['newFolderName']);
211 | return fs.mkdirAsync(newFolderPath, _this.settings.mode)
212 | .then(function() {
213 | return path.join(object.key, object['newFolderName'], '/');
214 | });
215 | });
216 | });
217 | };
218 |
219 | LocalCloud.prototype.deleteObject = function deleteObject(object) {
220 | var params = ['bucket', 'key'], _this = this;
221 | // options = options || {};
222 | // options.keys = object.key || '';
223 | return this.validateOptions(object, params)
224 | .then(function(object) {
225 | if(_.isEmpty(object.key) || !_.isString(object.key))
226 | return Promise.reject(new errors.ValidationError('Invalid key'));
227 | // 开始删除keys
228 | if(object.stat && object.stat.isDirectory()) {
229 | if(_this.settings.deleteMode === 'strict') {
230 | // delete in strict mode
231 | return rirmafPromise(object.keyPath);
232 | } else if(_this.settings.deleteMode === 'normal') {
233 | // delete in normal mode
234 | return fs.rmdirAsync(object.keyPath);
235 | }
236 | } else if(object.stat && object.stat.isFile()) {
237 | // we are tryint to delete a file
238 | return rirmafPromise(object.keyPath);
239 | } else {
240 | // other kind of fill not allow to delte
241 | return Promise.reject('forbidden');
242 | }
243 | });
244 | }
245 |
246 | LocalCloud.prototype.reNameObject = function reNameObject(object, options) {
247 | var params = ['bucket', 'key', 'fromName', 'toName'], _this = this;
248 | return this.validateOptions(object, params)
249 | .then(function(object) {
250 | var fromKey = path.join(object.keyPath, object.fromName),
251 | toKey = path.join(object.keyPath, object.toName);
252 | return fs.renameAsync(fromKey, toKey)
253 | .then(function() {
254 | return path.join(object.key, object.toName);
255 | });
256 | });
257 | }
258 |
259 | LocalCloud.prototype.uploadFile = function uploadFile(object, options) {
260 | var params = ['bucket', 'key', 'path'], _this = this;
261 | return this.validateOptions(object, params)
262 | .then(function(object) {
263 | return fs.renameAsync(path.resolve(object.path), path.join(object.keyPath, object.originalname))
264 | .then(function() {
265 | return path.join(object.key, object.originalname);
266 | });
267 | });
268 | };
269 |
270 | LocalCloud.prototype.mvObject = function mvObject(object, options) {
271 | var params = ['bucket', 'toKey', 'fromKey'],
272 | toKeyPath,
273 | fromKeyPath,
274 | toKeyStat,
275 | fromKeyStat,
276 | fromKeyBase
277 | _this = this;
278 | return this.validateOptions(object, params)
279 | .then(function(object) {
280 | toKeyPath = path.join(object.bucket.path, object.toKey);
281 | if(!(new RegExp("^" + _this.settings.rootPath).test(toKeyPath))) {
282 | return Promise.reject(new errors.ValidationError('can not reach that place: '+toKeyPath));
283 | }
284 |
285 | fromKeyPath = path.join(object.bucket.path, object.fromKey);
286 | if(!(new RegExp("^" + _this.settings.rootPath).test(fromKeyPath))) {
287 | return Promise.reject(new errors.ValidationError('can not reach that place: '+toKeyPath));
288 | }
289 |
290 | if(!fs.existsSync(toKeyPath)) {
291 | return Promise.reject(new errors.ValidationError(toKeyPath + ' is not exist'));
292 | } else {
293 | toKeyStat = fs.statSync(toKeyPath);
294 | if(!toKeyStat.isDirectory()) {
295 | return Promise.reject(new erors.ValidationError(toKeyPath + ' must be a directory'));
296 | }
297 | }
298 |
299 | if(!fs.existsSync(fromKeyPath)) {
300 | return Promise.reject(new errors.ValidationError(fromKeyPath + 'is not exist'));
301 | } else {
302 | fromKeyStat = fs.statSync(fromKeyPath);
303 | fromKeyBase = path.basename(fromKeyPath);
304 | }
305 |
306 | toKeyPath = path.join(toKeyPath, fromKeyBase);
307 | return fs.renameAsync(fromKeyPath, toKeyPath)
308 | .then(function() {
309 | return toKeyPath;
310 | });
311 |
312 |
313 | });
314 | }
315 |
316 | LocalCloud.prototype.downloadFile = function downloadFile(options, req, res) {
317 | var params = ['bucket', 'key'], _this = this;
318 | console.log(options);
319 | this.validateOptions(options, params)
320 | .then(function(options) {
321 | console.log(options.keyPath);
322 | res.download(options.keyPath);
323 | });
324 | }
325 | module.exports = new LocalCloud(config.localCloudSettings);
326 |
--------------------------------------------------------------------------------
/core/server/routes/index.js:
--------------------------------------------------------------------------------
1 | var express = require('express'),
2 | router = express.Router(),
3 | _ = require('lodash');
4 |
5 | // 加载各个路由
6 | _.each(['./localCloud'], function(r) {
7 | require(r)(router);
8 | });
9 |
10 | /* GET home page. */
11 | router.get('/', function(req, res, next) {
12 | res.render('index', { title: 'Express' });
13 | });
14 |
15 | module.exports = router;
16 |
--------------------------------------------------------------------------------
/core/server/routes/localCloud.js:
--------------------------------------------------------------------------------
1 | var localCloud = require('../controllers/localCloud.controller'),
2 | aliyunOss = require('../controllers/aliyunOss.controller'),
3 | multer = require('multer'),
4 | upload = multer({dest: 'uploads/'}),
5 | apiHeader = require('../utils/header');
6 |
7 | module.exports = function(router) {
8 | // create router here
9 | router.get('/api/localCloud/buckets', apiHeader.http(localCloud.listBuckets));
10 | router.get('/api/localCloud/folders', apiHeader.http(localCloud.listFolders));
11 | router.get('/api/localCloud/objects', apiHeader.http(localCloud.listObjects));
12 |
13 | // 创建新目录
14 | router.post('/api/localCloud/folders', apiHeader.http(localCloud.addFolder));
15 |
16 | // 删除文件或目录
17 | router.delete('/api/localCloud/object', apiHeader.http(localCloud.deleteObject));
18 |
19 | // 重命名 文件或目录
20 | router.put('/api/localCloud/object', apiHeader.http(localCloud.reNameObject));
21 |
22 | // 文件移动
23 | // toKey 必须为目录
24 | // fromkey
25 | router.post('/api/localCloud/object', apiHeader.http(localCloud.mvObject));
26 |
27 | router.post('/api/localCloud/file',upload.single('file'), apiHeader.http(localCloud.uploadFile));
28 |
29 | router.get('/api/localCloud/object', localCloud.downloadFile);
30 | router.get('/api/aliyunOss/buckets', apiHeader.http(aliyunOss.listBuckets));
31 | router.get('/api/aliyunOss/objects', apiHeader.http(aliyunOss.listObjects));
32 | // router.get('/api/aliyunOss/')
33 | };
34 |
--------------------------------------------------------------------------------
/core/server/utils/header.js:
--------------------------------------------------------------------------------
1 | var http, addHeaders, cacheInvalidationHeader, locationHeader, _ = require('lodash');
2 |
3 | http = function http(apiMethod, keepReq, keepRes) {
4 | return function apiHandler(req, res, next) {
5 | var object = _.extend({}, req.file, req.body);
6 | options = _.extend({}, req.query, req.params);
7 | if(keepReq)
8 | options._req = req;
9 | if(keepRes)
10 | options._res = res;
11 |
12 | if(_.isEmpty(object)) {
13 | object = options;
14 | options = {};
15 | }
16 |
17 | return apiMethod(object, options, req, res).tap(function onSuccess(response) {
18 | return addHeaders(apiMethod, req, res, (response || {}));
19 | }).then(function then(response) {
20 | res.json(response || {});
21 | }).catch(function onAPIError(error) {
22 | // To be handled by teh API middleware
23 | next(error);
24 | });
25 | };
26 | };
27 |
28 | addHeaders = function addHeaders(apiMethod, req, res, result) {
29 | var cacheInvalidation,
30 | location,
31 | contentDisposition;
32 |
33 | catchInvalidation = cacheInvalidationHeader(req, result);
34 | if(cacheInvalidation) {
35 | res.set({
36 | 'X-Cache-Invalidate': cacheInvalidation
37 | });
38 | }
39 |
40 | // 资源创建成功
41 | if(req.method === 'POST') {
42 | // @TODO 对post 资源进行location创建
43 | // location = locationHeader(req, result);
44 | if(location) {
45 | // res.set({Location: location});
46 | res.status(201);
47 | }
48 | }
49 | return contentDisposition;
50 | };
51 |
52 | cacheInvalidationHeader = function cacheInvalidationHeader(req, result) {
53 | // 将url 以 / 进行分割
54 | var parsedUrl = req._parsedUrl.pathname.replace(/^\/|\/$/g, '').split('/'),
55 | method = req.method,
56 | endpoint = parsedUrl[0],
57 | cacheInvalidate,
58 | jsonResult = result.toJSON ? result.toJSON() : result,
59 | post,
60 | hasStatusChanged,
61 | wasDeleted;
62 | if (method === 'POST' || method === 'PUT' || method === 'DELETE') {
63 | // 这里设置缓存策略默认禁用缓存
64 | cacheInvalidate = '/*';
65 | }
66 |
67 | return cacheInvalidate;
68 | };
69 |
70 | // @TODO 为Location header 添加资源
71 | locationHeader = function locationHeader(req, result) {
72 | var location;
73 | if(req.metod === 'POST') {
74 | //
75 | }
76 | return location;
77 | };
78 |
79 | module.exports = {
80 | http: http
81 | };
82 |
--------------------------------------------------------------------------------
/core/server/utils/pipeline.js:
--------------------------------------------------------------------------------
1 | /**
2 | * # Pipeline Utility
3 | *
4 | * Based on pipeline.js from when.js:
5 | * https://github.com/cujojs/when/blob/3.7.4/pipeline.js
6 | */
7 | var Promise = require('bluebird');
8 |
9 | function pipeline(tasks /* initial arguments */) {
10 | var args = Array.prototype.slice.call(arguments, 1),
11 |
12 | runTask = function (task, args) {
13 | // Self-optimizing function to run first task with multiple
14 | // args using apply, but subsequent tasks via direct invocation
15 | runTask = function (task, arg) {
16 | return task(arg);
17 | };
18 |
19 | return task.apply(null, args);
20 | };
21 |
22 | // Resolve any promises for the arguments passed in first
23 | return Promise.all(args).then(function (args) {
24 | // Iterate through the tasks passing args from one into the next
25 | return Promise.reduce(tasks, function (arg, task) {
26 | return runTask(task, arg);
27 | }, args);
28 | });
29 | }
30 |
31 | module.exports = pipeline;
32 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket1/folder/Screen Shot 2016-02-17 at 6.31.26 PM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket1/folder/Screen Shot 2016-02-17 at 6.31.26 PM.png
--------------------------------------------------------------------------------
/localCloudStore/Bucket1/folder/Screen Shot 2016-02-17 at 6.31.28 PM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket1/folder/Screen Shot 2016-02-17 at 6.31.28 PM.png
--------------------------------------------------------------------------------
/localCloudStore/Bucket1/folder/Screen Shot 2016-02-17 at 6.31.38 PM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket1/folder/Screen Shot 2016-02-17 at 6.31.38 PM.png
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (1).ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket2/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (1).ico
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (2).ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket2/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (2).ico
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (5).ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket2/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (5).ico
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/95f183cf-4fff-475e-9269-62c6677aa0e5 (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket2/95f183cf-4fff-475e-9269-62c6677aa0e5 (1).png
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/95f183cf-4fff-475e-9269-62c6677aa0e5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket2/95f183cf-4fff-475e-9269-62c6677aa0e5.png
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (4).ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket2/TryReact/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (4).ico
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/llljlkjl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket2/TryReact/llljlkjl
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/sdfs/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (2).ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket2/TryReact/sdfs/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (2).ico
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/sdfs/sdf/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (3).ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket2/TryReact/sdfs/sdf/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (3).ico
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/sdfs/sdf/new/sdf/abcb/HelloWorldabcsdf/.flowconfig:
--------------------------------------------------------------------------------
1 | [ignore]
2 |
3 | # We fork some components by platform.
4 | .*/*.web.js
5 | .*/*.android.js
6 |
7 | # Some modules have their own node_modules with overlap
8 | .*/node_modules/node-haste/.*
9 |
10 | # Ugh
11 | .*/node_modules/babel.*
12 | .*/node_modules/babylon.*
13 | .*/node_modules/invariant.*
14 |
15 | # Ignore react and fbjs where there are overlaps, but don't ignore
16 | # anything that react-native relies on
17 | .*/node_modules/fbjs/lib/Map.js
18 | .*/node_modules/fbjs/lib/Promise.js
19 | .*/node_modules/fbjs/lib/fetch.js
20 | .*/node_modules/fbjs/lib/ExecutionEnvironment.js
21 | .*/node_modules/fbjs/lib/isEmpty.js
22 | .*/node_modules/fbjs/lib/crc32.js
23 | .*/node_modules/fbjs/lib/ErrorUtils.js
24 |
25 | # Flow has a built-in definition for the 'react' module which we prefer to use
26 | # over the currently-untyped source
27 | .*/node_modules/react/react.js
28 | .*/node_modules/react/lib/React.js
29 | .*/node_modules/react/lib/ReactDOM.js
30 |
31 | # Ignore commoner tests
32 | .*/node_modules/commoner/test/.*
33 |
34 | # See https://github.com/facebook/flow/issues/442
35 | .*/react-tools/node_modules/commoner/lib/reader.js
36 |
37 | # Ignore jest
38 | .*/node_modules/jest-cli/.*
39 |
40 | # Ignore Website
41 | .*/website/.*
42 |
43 | [include]
44 |
45 | [libs]
46 | node_modules/react-native/Libraries/react-native/react-native-interface.js
47 |
48 | [options]
49 | module.system=haste
50 |
51 | munge_underscores=true
52 |
53 | module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub'
54 | module.name_mapper='^[./a-zA-Z0-9$_-]+\.png$' -> 'RelativeImageStub'
55 |
56 | suppress_type=$FlowIssue
57 | suppress_type=$FlowFixMe
58 | suppress_type=$FixMe
59 |
60 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-0]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
61 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-0]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
62 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
63 |
64 | [version]
65 | 0.20.1
66 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/sdfs/sdf/new/sdf/abcb/HelloWorldabcsdf/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 | project.xcworkspace
24 |
25 | # Android/IJ
26 | #
27 | .idea
28 | .gradle
29 | local.properties
30 |
31 | # node.js
32 | #
33 | node_modules/
34 | npm-debug.log
35 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/sdfs/sdf/new/sdf/abcb/HelloWorldabcsdf/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/sdfs/sdf/new/sdf/abcb/HelloWorldabcsdf/android/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:1.3.1'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | mavenLocal()
18 | jcenter()
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/sdfs/sdf/new/sdf/abcb/HelloWorldabcsdf/android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | android.useDeprecatedNdk=true
21 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/sdfs/sdf/new/sdf/abcb/HelloWorldabcsdf/android/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/TryReact/sdfs/sdf/new/sdf/abcb/HelloWorldabcsdf/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'HelloWorld'
2 |
3 | include ':app'
4 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket2/sdfsdsf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket2/sdfsdsf
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (1).ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (1).ico
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (2).ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/214aa4f9-c0d5-4464-82ca-8328a6f92e29 (2).ico
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:1.3.1'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | mavenLocal()
18 | jcenter()
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld.xcodeproj/project.xcworkspace/xcuserdata/markstock.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld.xcodeproj/project.xcworkspace/xcuserdata/markstock.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld.xcodeproj/xcshareddata/xcschemes/HelloWorld.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
38 |
39 |
44 |
45 |
47 |
53 |
54 |
55 |
56 |
57 |
63 |
64 |
65 |
66 |
75 |
77 |
83 |
84 |
85 |
86 |
87 |
88 |
94 |
96 |
102 |
103 |
104 |
105 |
107 |
108 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld.xcodeproj/xcuserdata/markstock.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | HelloWorld.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 00E356ED1AD99517003FC87E
16 |
17 | primary
18 |
19 |
20 | 13B07F861A680F5B00A75B9A
21 |
22 | primary
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld/AppDelegate.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import
11 |
12 | @interface AppDelegate : UIResponder
13 |
14 | @property (nonatomic, strong) UIWindow *window;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld/AppDelegate.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import "AppDelegate.h"
11 |
12 | #import "RCTRootView.h"
13 |
14 | @implementation AppDelegate
15 |
16 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
17 | {
18 | NSURL *jsCodeLocation;
19 |
20 | /**
21 | * Loading JavaScript code - uncomment the one you want.
22 | *
23 | * OPTION 1
24 | * Load from development server. Start the server from the repository root:
25 | *
26 | * $ npm start
27 | *
28 | * To run on device, change `localhost` to the IP address of your computer
29 | * (you can get this by typing `ifconfig` into the terminal and selecting the
30 | * `inet` value under `en0:`) and make sure your computer and iOS device are
31 | * on the same Wi-Fi network.
32 | */
33 |
34 | jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
35 |
36 | /**
37 | * OPTION 2
38 | * Load from pre-bundled file on disk. The static bundle is automatically
39 | * generated by "Bundle React Native code and images" build step.
40 | */
41 |
42 | // jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
43 |
44 | RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
45 | moduleName:@"HelloWorld"
46 | initialProperties:nil
47 | launchOptions:launchOptions];
48 |
49 | self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
50 | UIViewController *rootViewController = [UIViewController new];
51 | rootViewController.view = rootView;
52 | self.window.rootViewController = rootViewController;
53 | [self.window makeKeyAndVisible];
54 | return YES;
55 | }
56 |
57 | @end
58 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld/Base.lproj/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
21 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UIViewControllerBasedStatusBarAppearance
38 |
39 | NSLocationWhenInUseUsageDescription
40 |
41 | NSAppTransportSecurity
42 |
43 |
44 | NSAllowsArbitraryLoads
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorld/main.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import
11 |
12 | #import "AppDelegate.h"
13 |
14 | int main(int argc, char * argv[]) {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorldTests/HelloWorldTests.m:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015-present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | #import
11 | #import
12 |
13 | #import "RCTLog.h"
14 | #import "RCTRootView.h"
15 |
16 | #define TIMEOUT_SECONDS 240
17 | #define TEXT_TO_LOOK_FOR @"Welcome to React Native!"
18 |
19 | @interface HelloWorldTests : XCTestCase
20 |
21 | @end
22 |
23 | @implementation HelloWorldTests
24 |
25 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test
26 | {
27 | if (test(view)) {
28 | return YES;
29 | }
30 | for (UIView *subview in [view subviews]) {
31 | if ([self findSubviewInView:subview matching:test]) {
32 | return YES;
33 | }
34 | }
35 | return NO;
36 | }
37 |
38 | - (void)testRendersWelcomeScreen
39 | {
40 | UIViewController *vc = [[[[UIApplication sharedApplication] delegate] window] rootViewController];
41 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
42 | BOOL foundElement = NO;
43 |
44 | __block NSString *redboxError = nil;
45 | RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
46 | if (level >= RCTLogLevelError) {
47 | redboxError = message;
48 | }
49 | });
50 |
51 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
52 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
53 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
54 |
55 | foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) {
56 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
57 | return YES;
58 | }
59 | return NO;
60 | }];
61 | }
62 |
63 | RCTSetLogFunction(RCTDefaultLogFunction);
64 |
65 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
66 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
67 | }
68 |
69 |
70 | @end
71 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/HelloWorldTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/Objects-normal/x86_64/RCTActionSheet.LinkFileList:
--------------------------------------------------------------------------------
1 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/Objects-normal/x86_64/RCTActionSheetManager.o
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/Objects-normal/x86_64/RCTActionSheetManager.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheetManager.m \
3 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheetManager.h \
4 | ../../React/Base/RCTBridge.h ../../React/Base/RCTBridgeDelegate.h \
5 | ../../React/Base/RCTBridgeModule.h ../../React/Base/RCTDefines.h \
6 | ../../React/Base/RCTFrameUpdate.h ../../React/Base/RCTInvalidating.h \
7 | ../../React/Base/RCTJavaScriptExecutor.h ../../React/Base/RCTConvert.h \
8 | ../../React/Layout/Layout.h ../../React/Views/RCTAnimationType.h \
9 | ../../React/Views/RCTBorderStyle.h \
10 | ../../React/Views/RCTTextDecorationLineType.h \
11 | ../../React/Base/RCTLog.h ../../React/Base/RCTAssert.h \
12 | ../../React/Views/RCTPointerEvents.h ../../React/Base/RCTUtils.h \
13 | ../../React/Modules/RCTUIManager.h ../../React/Views/RCTViewManager.h \
14 | ../../React/Views/RCTComponent.h ../../React/Base/RCTEventDispatcher.h
15 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/Objects-normal/x86_64/RCTActionSheetManager.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/Objects-normal/x86_64/RCTActionSheetManager.dia
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet-all-non-framework-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet-all-non-framework-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet-all-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet-all-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet-generated-files.hmap:
--------------------------------------------------------------------------------
1 | pamh x
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet-own-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet-own-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet-project-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet-project-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/RCTActionSheet.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/dgph:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTActionSheet.build/Debug-iphonesimulator/RCTActionSheet.build/dgph
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImage.LinkFileList:
--------------------------------------------------------------------------------
1 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTVirtualImageManager.o
2 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageStoreManager.o
3 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageViewManager.o
4 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTGIFImageDecoder.o
5 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageLoader.o
6 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageEditingManager.o
7 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageView.o
8 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTShadowVirtualImage.o
9 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTXCAssetImageLoader.o
10 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageUtils.o
11 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageStoreManager.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/Image/RCTImageStoreManager.m \
3 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/Image/RCTImageStoreManager.h \
4 | ../../React/Base/RCTBridge.h ../../React/Base/RCTBridgeDelegate.h \
5 | ../../React/Base/RCTBridgeModule.h ../../React/Base/RCTDefines.h \
6 | ../../React/Base/RCTFrameUpdate.h ../../React/Base/RCTInvalidating.h \
7 | ../../React/Base/RCTJavaScriptExecutor.h \
8 | ../../React/Base/RCTURLRequestHandler.h \
9 | ../../React/Base/RCTURLRequestDelegate.h ../../React/Base/RCTAssert.h \
10 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/Image/RCTImageUtils.h \
11 | ../../React/Base/RCTLog.h ../../React/Base/RCTUtils.h
12 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageStoreManager.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageStoreManager.dia
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageViewManager.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/Image/RCTImageViewManager.m \
3 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/Image/RCTImageViewManager.h \
4 | ../../React/Views/RCTViewManager.h ../../React/Base/RCTBridgeModule.h \
5 | ../../React/Base/RCTDefines.h ../../React/Base/RCTConvert.h \
6 | ../../React/Layout/Layout.h ../../React/Views/RCTAnimationType.h \
7 | ../../React/Views/RCTBorderStyle.h \
8 | ../../React/Views/RCTTextDecorationLineType.h \
9 | ../../React/Base/RCTLog.h ../../React/Base/RCTAssert.h \
10 | ../../React/Views/RCTPointerEvents.h ../../React/Views/RCTComponent.h \
11 | ../../React/Base/RCTEventDispatcher.h ../../React/Base/RCTBridge.h \
12 | ../../React/Base/RCTBridgeDelegate.h ../../React/Base/RCTFrameUpdate.h \
13 | ../../React/Base/RCTInvalidating.h \
14 | ../../React/Base/RCTJavaScriptExecutor.h \
15 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/Image/RCTImageLoader.h \
16 | ../../React/Base/RCTURLRequestHandler.h \
17 | ../../React/Base/RCTURLRequestDelegate.h \
18 | ../../React/Base/RCTImageSource.h \
19 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/Image/RCTImageView.h \
20 | ../../React/Views/RCTImageComponent.h
21 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageViewManager.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTImageViewManager.dia
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTVirtualImageManager.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/Image/RCTVirtualImageManager.m \
3 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/Image/RCTVirtualImageManager.h \
4 | ../../React/Views/RCTViewManager.h ../../React/Base/RCTBridgeModule.h \
5 | ../../React/Base/RCTDefines.h ../../React/Base/RCTConvert.h \
6 | ../../React/Layout/Layout.h ../../React/Views/RCTAnimationType.h \
7 | ../../React/Views/RCTBorderStyle.h \
8 | ../../React/Views/RCTTextDecorationLineType.h \
9 | ../../React/Base/RCTLog.h ../../React/Base/RCTAssert.h \
10 | ../../React/Views/RCTPointerEvents.h ../../React/Views/RCTComponent.h \
11 | ../../React/Base/RCTEventDispatcher.h ../../React/Base/RCTBridge.h \
12 | ../../React/Base/RCTBridgeDelegate.h ../../React/Base/RCTFrameUpdate.h \
13 | ../../React/Base/RCTInvalidating.h \
14 | ../../React/Base/RCTJavaScriptExecutor.h \
15 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/Image/RCTShadowVirtualImage.h \
16 | ../../React/Views/RCTShadowView.h ../../React/Base/RCTRootView.h \
17 | ../../React/Views/RCTImageComponent.h \
18 | ../../React/Base/RCTImageSource.h
19 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTVirtualImageManager.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/Objects-normal/x86_64/RCTVirtualImageManager.dia
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage-all-non-framework-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage-all-non-framework-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage-all-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage-all-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage-generated-files.hmap:
--------------------------------------------------------------------------------
1 | pamh x
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage-own-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage-own-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage-project-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage-project-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/RCTImage.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/dgph:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTImage.build/Debug-iphonesimulator/RCTImage.build/dgph
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/Objects-normal/x86_64/RCTLinking.LinkFileList:
--------------------------------------------------------------------------------
1 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/Objects-normal/x86_64/RCTLinkingManager.o
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/Objects-normal/x86_64/RCTLinkingManager.d:
--------------------------------------------------------------------------------
1 | dependencies: \
2 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/LinkingIOS/RCTLinkingManager.m \
3 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/node_modules/react-native/Libraries/LinkingIOS/RCTLinkingManager.h \
4 | ../../React/Base/RCTBridgeModule.h ../../React/Base/RCTDefines.h \
5 | ../../React/Base/RCTBridge.h ../../React/Base/RCTBridgeDelegate.h \
6 | ../../React/Base/RCTFrameUpdate.h ../../React/Base/RCTInvalidating.h \
7 | ../../React/Base/RCTJavaScriptExecutor.h \
8 | ../../React/Base/RCTEventDispatcher.h ../../React/Base/RCTUtils.h \
9 | ../../React/Base/RCTAssert.h
10 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/Objects-normal/x86_64/RCTLinkingManager.dia:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/Objects-normal/x86_64/RCTLinkingManager.dia
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking-all-non-framework-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking-all-non-framework-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking-all-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking-all-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking-generated-files.hmap:
--------------------------------------------------------------------------------
1 | pamh x
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking-own-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking-own-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking-project-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking-project-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/RCTLinking.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/dgph:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTLinking.build/Debug-iphonesimulator/RCTLinking.build/dgph
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/Objects-normal/x86_64/RCTNetwork.LinkFileList:
--------------------------------------------------------------------------------
1 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/Objects-normal/x86_64/RCTNetworkTask.o
2 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/Objects-normal/x86_64/RCTFileRequestHandler.o
3 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/Objects-normal/x86_64/RCTDataRequestHandler.o
4 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/Objects-normal/x86_64/RCTNetInfo.o
5 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/Objects-normal/x86_64/RCTNetworking.o
6 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/Objects-normal/x86_64/RCTHTTPRequestHandler.o
7 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork-all-non-framework-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork-all-non-framework-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork-all-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork-all-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork-generated-files.hmap:
--------------------------------------------------------------------------------
1 | pamh x
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork-own-target-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork-own-target-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork-project-headers.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork-project-headers.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork.hmap:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/RCTNetwork.hmap
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/Build/Intermediates/RCTNetwork.build/Debug-iphonesimulator/RCTNetwork.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.00Apr 14 201516:50:56Q / Users markstock public ProjectRepo TryReact
2 | HelloWorld node_modules react-native Libraries
3 | Network ios build
Build Products
Intermediates tmp RCTNetwork.dst var folders sk v9n32qn14pq481lw3by00rg40000gn C com.apple.DeveloperTools 6.3.1-6D1002 Xcode Debug-iphonesimulator RCTNetwork.build Debug-iphonesimulator PrecompiledHeaders Applications Xcode.app Contents ! Developer " Platforms #iPhoneSimulator.platform $ Developer %SDKs &iPhoneSimulator8.3.sdk RCTNetwork.build (DerivedSources libRCTNetwork.a RCTNetworkTask.m (Objects-normal ,x86_64 -RCTNetworkTask.o 'SDKSettings.plist 'System 0Library 1CoreServices 2SystemVersion.plist "
4 | Toolchains 4XcodeDefault.xctoolchain 5usr 6lib 7clang 86.1.0 9include :
5 | module.map (StaticAnalyzer <
6 | RCTNetwork =
7 | RCTNetwork >normal ?x86_64 @RCTNetworkTask.plist RCTFileRequestHandler.m -RCTFileRequestHandler.o @RCTFileRequestHandler.plist RCTDataRequestHandler.m -RCTDataRequestHandler.o @RCTDataRequestHandler.plist RCTNetInfo.m -RCTNetInfo.o @RCTNetInfo.plist RCTNetworking.m -RCTNetworking.o @RCTNetworking.plist RCTHTTPRequestHandler.m -RCTHTTPRequestHandler.o @RCTHTTPRequestHandler.plist -RCTNetwork.LinkFileList
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/Session.modulevalidation:
--------------------------------------------------------------------------------
1 | Module build session file for module cache at /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/build/ModuleCache
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CFNetwork-N94D31PLFESQ.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CFNetwork-N94D31PLFESQ.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CFNetwork-N94D31PLFESQ.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreFoundation-3MOS9MZDR6J1P.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreFoundation-3MOS9MZDR6J1P.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreFoundation-3MOS9MZDR6J1P.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreGraphics-N94D31PLFESQ.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreGraphics-N94D31PLFESQ.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreGraphics-N94D31PLFESQ.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreImage-N94D31PLFESQ.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreImage-N94D31PLFESQ.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreImage-N94D31PLFESQ.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreText-N94D31PLFESQ.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreText-N94D31PLFESQ.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreText-N94D31PLFESQ.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreVideo-2LUXD6OZSQPF.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreVideo-2LUXD6OZSQPF.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/CoreVideo-2LUXD6OZSQPF.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Darwin-N0EKDJGHFAYB.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Darwin-N0EKDJGHFAYB.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Darwin-N0EKDJGHFAYB.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Dispatch-2ZKKDUJ5RGF0S.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Dispatch-2ZKKDUJ5RGF0S.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Dispatch-2ZKKDUJ5RGF0S.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Foundation-2NNP27CGK7J4W.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Foundation-2NNP27CGK7J4W.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Foundation-2NNP27CGK7J4W.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/ImageIO-N94D31PLFESQ.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/ImageIO-N94D31PLFESQ.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/ImageIO-N94D31PLFESQ.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/JavaScriptCore-N94D31PLFESQ.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/JavaScriptCore-N94D31PLFESQ.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/JavaScriptCore-N94D31PLFESQ.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/MachO-1BMJAO5Q3NM3O.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/MachO-1BMJAO5Q3NM3O.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/MachO-1BMJAO5Q3NM3O.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/MobileCoreServices-N94D31PLFESQ.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/MobileCoreServices-N94D31PLFESQ.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/MobileCoreServices-N94D31PLFESQ.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/ObjectiveC-1RQA2RIXJIE19.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/ObjectiveC-1RQA2RIXJIE19.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/ObjectiveC-1RQA2RIXJIE19.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/OpenGLES-JLMMBGEUW8IK.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/OpenGLES-JLMMBGEUW8IK.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/OpenGLES-JLMMBGEUW8IK.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/QuartzCore-243GPM1WM5PQT.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/QuartzCore-243GPM1WM5PQT.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/QuartzCore-243GPM1WM5PQT.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Security-T0W5HZGV3ZZ1.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Security-T0W5HZGV3ZZ1.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/Security-T0W5HZGV3ZZ1.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/UIKit-27PL4RA7HR3WK.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/UIKit-27PL4RA7HR3WK.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/UIKit-27PL4RA7HR3WK.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/modules.idx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/modules.idx
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/os-N0EKDJGHFAYB.pcm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/os-N0EKDJGHFAYB.pcm
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/X4M7VRHEEETK/os-N0EKDJGHFAYB.pcm.timestamp:
--------------------------------------------------------------------------------
1 | Timestamp file
2 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/modules.timestamp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/build/ModuleCache/modules.timestamp
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/build/info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WorkspacePath
6 | /Users/markstock/public/ProjectRepo/TryReact/HelloWorld/ios/HelloWorld.xcodeproj
7 |
8 |
9 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/java/com/helloworld/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.helloworld;
2 |
3 | import com.facebook.react.ReactActivity;
4 | import com.facebook.react.ReactPackage;
5 | import com.facebook.react.shell.MainReactPackage;
6 |
7 | import java.util.Arrays;
8 | import java.util.List;
9 |
10 | public class MainActivity extends ReactActivity {
11 |
12 | /**
13 | * Returns the name of the main component registered from JavaScript.
14 | * This is used to schedule rendering of the component.
15 | */
16 | @Override
17 | protected String getMainComponentName() {
18 | return "HelloWorld";
19 | }
20 |
21 | /**
22 | * Returns whether dev mode should be enabled.
23 | * This enables e.g. the dev menu.
24 | */
25 | @Override
26 | protected boolean getUseDeveloperSupport() {
27 | return BuildConfig.DEBUG;
28 | }
29 |
30 | /**
31 | * A list of packages used by the app. If the app uses additional views
32 | * or modules besides the default ones, add more packages here.
33 | */
34 | @Override
35 | protected List getPackages() {
36 | return Arrays.asList(
37 | new MainReactPackage()
38 | );
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | HelloWorld
3 |
4 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/ios/src-bac/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/localCloudStore/Bucket3/android/app/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
6 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
19 | # Disabling obfuscation is useful if you collect stack traces from production crashes
20 | # (unless you are using a system that supports de-obfuscate the stack traces).
21 | -dontobfuscate
22 |
23 | # React Native
24 |
25 | # Keep our interfaces so they can be used by other ProGuard rules.
26 | # See http://sourceforge.net/p/proguard/bugs/466/
27 | -keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
28 | -keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters
29 |
30 | # Do not strip any method/class that is annotated with @DoNotStrip
31 | -keep @com.facebook.proguard.annotations.DoNotStrip class *
32 | -keepclassmembers class * {
33 | @com.facebook.proguard.annotations.DoNotStrip *;
34 | }
35 |
36 | -keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * {
37 | void set*(***);
38 | *** get*();
39 | }
40 |
41 | -keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
42 | -keep class * extends com.facebook.react.bridge.NativeModule { *; }
43 | -keepclassmembers,includedescriptorclasses class * { native ; }
44 | -keepclassmembers class * { @com.facebook.react.uimanager.UIProp ; }
45 | -keepclassmembers class * { @com.facebook.react.uimanager.ReactProp ; }
46 | -keepclassmembers class * { @com.facebook.react.uimanager.ReactPropGroup ; }
47 |
48 | -dontwarn com.facebook.react.**
49 |
50 | # okhttp
51 |
52 | -keepattributes Signature
53 | -keepattributes *Annotation*
54 | -keep class com.squareup.okhttp.** { *; }
55 | -keep interface com.squareup.okhttp.** { *; }
56 | -dontwarn com.squareup.okhttp.**
57 |
58 | # okio
59 |
60 | -keep class sun.misc.Unsafe { *; }
61 | -dontwarn java.nio.file.*
62 | -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
63 | -dontwarn okio.**
64 |
65 | # stetho
66 |
67 | -dontwarn com.facebook.stetho.**
68 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/android/app/react.gradle:
--------------------------------------------------------------------------------
1 | import org.apache.tools.ant.taskdefs.condition.Os
2 |
3 | def config = project.hasProperty("react") ? project.react : [];
4 |
5 | def bundleAssetName = config.bundleAssetName ?: "index.android.bundle"
6 | def entryFile = config.entryFile ?: "index.android.js"
7 |
8 | // because elvis operator
9 | def elvisFile(thing) {
10 | return thing ? file(thing) : null;
11 | }
12 |
13 | def reactRoot = elvisFile(config.root) ?: file("../../")
14 | def inputExcludes = config.inputExcludes ?: ["android/**", "ios/**"]
15 |
16 | void runBefore(String dependentTaskName, Task task) {
17 | Task dependentTask = tasks.findByPath(dependentTaskName);
18 | if (dependentTask != null) {
19 | dependentTask.dependsOn task
20 | }
21 | }
22 |
23 | gradle.projectsEvaluated {
24 | // Grab all build types and product flavors
25 | def buildTypes = android.buildTypes.collect { type -> type.name }
26 | def productFlavors = android.productFlavors.collect { flavor -> flavor.name }
27 |
28 | // When no product flavors defined, use empty
29 | if (!productFlavors) productFlavors.add('')
30 |
31 | productFlavors.each { productFlavorName ->
32 | buildTypes.each { buildTypeName ->
33 | // Create variant and source names
34 | def sourceName = "${buildTypeName}"
35 | def targetName = "${sourceName.capitalize()}"
36 | if (productFlavorName) {
37 | sourceName = "${productFlavorName}${targetName}"
38 | }
39 |
40 | // React js bundle directories
41 | def jsBundleDirConfigName = "jsBundleDir${targetName}"
42 | def jsBundleDir = elvisFile(config."$jsBundleDirConfigName") ?:
43 | file("$buildDir/intermediates/assets/${sourceName}")
44 |
45 | def resourcesDirConfigName = "jsBundleDir${targetName}"
46 | def resourcesDir = elvisFile(config."${resourcesDirConfigName}") ?:
47 | file("$buildDir/intermediates/res/merged/${sourceName}")
48 | def jsBundleFile = file("$jsBundleDir/$bundleAssetName")
49 |
50 | // Bundle task name for variant
51 | def bundleJsAndAssetsTaskName = "bundle${targetName}JsAndAssets"
52 |
53 | def currentBundleTask = tasks.create(
54 | name: bundleJsAndAssetsTaskName,
55 | type: Exec) {
56 | group = "react"
57 | description = "bundle JS and assets for ${targetName}."
58 |
59 | // Create dirs if they are not there (e.g. the "clean" task just ran)
60 | doFirst {
61 | jsBundleDir.mkdirs()
62 | resourcesDir.mkdirs()
63 | }
64 |
65 | // Set up inputs and outputs so gradle can cache the result
66 | inputs.files fileTree(dir: reactRoot, excludes: inputExcludes)
67 | outputs.dir jsBundleDir
68 | outputs.dir resourcesDir
69 |
70 | // Set up the call to the react-native cli
71 | workingDir reactRoot
72 |
73 | // Set up dev mode
74 | def devEnabled = !targetName.toLowerCase().contains("release")
75 | if (Os.isFamily(Os.FAMILY_WINDOWS)) {
76 | commandLine "cmd", "/c", "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}",
77 | "--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir
78 | } else {
79 | commandLine "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}",
80 | "--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir
81 | }
82 |
83 | enabled config."bundleIn${targetName}" ?: targetName.toLowerCase().contains("release")
84 | }
85 |
86 | // Hook bundle${productFlavor}${buildType}JsAndAssets into the android build process
87 | currentBundleTask.dependsOn("merge${targetName}Resources")
88 | currentBundleTask.dependsOn("merge${targetName}Assets")
89 |
90 | runBefore("processArmeabi-v7a${targetName}Resources", currentBundleTask)
91 | runBefore("processX86${targetName}Resources", currentBundleTask)
92 | runBefore("processUniversal${targetName}Resources", currentBundleTask)
93 | runBefore("process${targetName}Resources", currentBundleTask)
94 | }
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/index.android.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Sample React Native App
3 | * https://github.com/facebook/react-native
4 | */
5 | 'use strict';
6 | import React, {
7 | AppRegistry,
8 | Component,
9 | StyleSheet,
10 | Text,
11 | View
12 | } from 'react-native';
13 |
14 | class HelloWorld extends Component {
15 | render() {
16 | return (
17 |
18 |
19 | Welcome to React Native!
20 |
21 |
22 | To get started, edit index.android.js
23 |
24 |
25 | Shake or press menu button for dev menu
26 |
27 |
28 | );
29 | }
30 | }
31 |
32 | const styles = StyleSheet.create({
33 | container: {
34 | flex: 1,
35 | justifyContent: 'center',
36 | alignItems: 'center',
37 | backgroundColor: '#F5FCFF',
38 | },
39 | welcome: {
40 | fontSize: 20,
41 | textAlign: 'center',
42 | margin: 10,
43 | },
44 | instructions: {
45 | textAlign: 'center',
46 | color: '#333333',
47 | marginBottom: 5,
48 | },
49 | });
50 |
51 | AppRegistry.registerComponent('HelloWorld', () => HelloWorld);
52 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/index.ios.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Sample React Native App
3 | * https://github.com/facebook/react-native
4 | */
5 | 'use strict';
6 | import React, {
7 | AppRegistry,
8 | Component,
9 | StyleSheet,
10 | Text,
11 | View
12 | } from 'react-native';
13 |
14 | class HelloWorld extends Component {
15 | render() {
16 | return (
17 |
18 |
19 | Welcome to React Native!
20 |
21 |
22 | To get started, edit index.ios.js
23 |
24 |
25 | Press Cmd+R to reload,{'\n'}
26 | Cmd+D or shake for dev menu
27 |
28 |
29 | );
30 | }
31 | }
32 |
33 | const styles = StyleSheet.create({
34 | container: {
35 | flex: 1,
36 | justifyContent: 'center',
37 | alignItems: 'center',
38 | backgroundColor: '#F5FCFF',
39 | },
40 | welcome: {
41 | fontSize: 20,
42 | textAlign: 'center',
43 | margin: 10,
44 | },
45 | instructions: {
46 | textAlign: 'center',
47 | color: '#333333',
48 | marginBottom: 5,
49 | },
50 | });
51 |
52 | AppRegistry.registerComponent('HelloWorld', () => HelloWorld);
53 |
--------------------------------------------------------------------------------
/localCloudStore/Bucket3/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "HelloWorld",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "start": "node node_modules/react-native/local-cli/cli.js start"
7 | },
8 | "dependencies": {
9 | "react-native": "^0.19.0"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "myapp",
3 | "version": "0.0.0",
4 | "private": true,
5 | "scripts": {
6 | "start": "node ./bin/www"
7 | },
8 | "dependencies": {
9 | "aliyun-sdk": "^1.9.1",
10 | "async": "^2.0.0-rc.5",
11 | "bluebird": "^3.3.1",
12 | "body-parser": "~1.13.2",
13 | "cookie-parser": "~1.3.5",
14 | "debug": "~2.2.0",
15 | "express": "~4.13.1",
16 | "jade": "~1.11.0",
17 | "lodash": "^4.3.0",
18 | "morgan": "~1.6.1",
19 | "multer": "^1.1.0",
20 | "rimraf": "^2.5.2",
21 | "rimraf-promise": "^2.0.0",
22 | "serve-favicon": "~2.3.0",
23 | "swig": "^1.4.2",
24 | "underscore": "^1.8.3"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/public/assets/fileManager/cloudpanel.css:
--------------------------------------------------------------------------------
1 | *{
2 | font: 12px/1.5 tahoma,arial,"宋体";
3 | }
4 | a{
5 | color: #06c;
6 | text-decoration: none;
7 | }
8 |
9 | .oss-icon-small{
10 | background: url(./icon/icons.gif) 9999px 9999px no-repeat;
11 | width:20px;
12 | }
13 | .oss-icon-small.icon_mp3{
14 | background-position: -193px -80px;
15 | }
16 | .oss-icon-small.icon_dir{
17 | background-position: -2px 0px;
18 | }
19 | .oss-icon-small.icon-zip{
20 | background-position: -349px 81px;
21 | }
22 | .oss-icon-small.icon_image{
23 | background-position: -2px -80px;
24 | }
25 | .oss-icon-small.icon_txt {
26 | background-position: -162px -80px;
27 | }
28 |
29 |
30 |
31 | /** General icon */
32 | .oss-icon {
33 | display: inline-block;
34 | min-width: 20px;
35 | min-height: 20px;
36 | background: url(./image/btn_icon.gif) no-repeat;
37 | }
38 | .oss-icon-s{
39 | display: inline-block;
40 | min-width: 10px;
41 | min-height: 10px;
42 | background: url(./image/btn_icon.gif) no-repeat;
43 | }
44 | .oss-icon.share:hover{
45 | background-position: -182px -59px; /** x + 31 */
46 | }
47 | .oss-icon.share{
48 | background-position: -208px -230px;
49 | }
50 | .oss-icon.blank{
51 | background-position: -111px 3px;
52 | }
53 | .oss-icon.check{
54 | background-position: -111px -16px;
55 | }
56 | .oss-icon.download{
57 | background-position: -207px -210px;
58 | }
59 | .oss-icon.download:hover{
60 | background-position: -181px -39px; /** x + 31 */
61 | }
62 | .oss-icon.download-light{
63 | background-position: -207px -485px;
64 | }
65 | .oss-icon.download-light:hover{
66 | background-position: -182px -37px; /** x + 31 */
67 | }
68 | .oss-icon.more{
69 | background-position: -208px -351px;
70 | }
71 | .oss-icon.more:hover{
72 | background-position: -182px -308px;
73 | }
74 | .oss-icon.createfile{
75 | background-position: 0 -416px;
76 | }
77 | .oss-icon.createfile:hover{
78 | background-position: 0 -448px;
79 | }
80 | .oss-icon.bucket{
81 | background-position: -0px -59px;
82 | width: 24px
83 | }
84 | .oss-icon.folder{
85 | background-position: -0px -224px;
86 | width: 24px;
87 | }
88 | .oss-icon.upload{
89 | background-position: -180px -280px;
90 | width: 24px;
91 | }
92 | .oss-icon.delete{
93 | background-position: -156px -128px;
94 | }
95 | .oss-icon.delete:hover{
96 | background-position: -230px -150px;
97 | }
98 | .oss-icon.list{
99 | background-position: -65px -237px;
100 | width: 33px;
101 | height: 29px;
102 | }
103 | .oss-icon.list-selected{
104 | background-position: -65px -268px;
105 | width: 33px;
106 | height: 29px;
107 | }
108 | .oss-icon.grid{
109 | background-position: -98px -268px;
110 | width: 33px;
111 | height: 29px;
112 | }
113 | .oss-icon.grid-selected{
114 | background-position: -98px -237px;
115 | width: 33px;
116 | height: 29px;
117 | }
118 | .oss-icon.grid:hover{
119 | background-position: -121px -141px;
120 | width: 33px;
121 | height: 29px;
122 | }
123 | .oss-icon.list:hover{
124 | background-position: -88px -140px;
125 | width: 33px;
126 | height: 29px;
127 | }
128 | .oss-icon.drapout{
129 | background-position: -207px -417px;
130 | }
131 | .oss-icon.drapout:hover{
132 | background-position: -227px -417px;
133 | }
134 | .oss-icon-s.plus{
135 | background-position: -237px -265px;
136 | height: 11px;
137 | width: 11px;
138 | }
139 | .oss-icon-s.minus{
140 | background-position: -237px -247px;
141 | height: 11px;
142 | width: 11px;
143 | }
144 | .oss-icon-s.smile{
145 | background-position: -237px -265px;
146 | height: 11px;
147 | width: 11px;
148 | }
149 | .oss-icon-s.close{
150 | background-position: -276px -42px;
151 | width: 25px;
152 | height: 25px;
153 | }
154 | .oss-icon-s.close:hover{
155 | background-position: -251px -42px;
156 | width: 25px;
157 | height: 25px;
158 | }
159 |
160 |
161 |
162 |
163 |
164 | .clearfix{
165 |
166 | }
167 | .clearfix:before{
168 | content:'';
169 | display:table;
170 | }
171 | .clearfix:after{
172 | clear:both;
173 | content: " ";
174 | display: table;
175 | }
176 |
177 | .ossUploadWrapper{
178 | position: fixed;
179 | top: 0;
180 | right: 0;
181 | bottom: 0;
182 | left: 0;
183 | z-index: 1050;
184 | overflow: hidden;
185 | -webkit-overflow-scrolling: touch;
186 | outline: 0;
187 | background: rgba(0,0,0,0.3);
188 |
189 | }
190 | .ossUpload{
191 | position: relative;
192 | margin: 30 auto;
193 | width:1400px;
194 | -webkit-box-shadow: 0 2px 3px rgba(0,0,0,0.125);
195 | box-shadow: 0 2px 3px rgba(0,0,0,0.125);
196 | background-color: #fff;
197 | -webkit-background-clip: padding-box;
198 | background-clip: padding-box; outline: 0;
199 | -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
200 | box-shadow: 0 3px 9px rgba(0,0,0,.5);
201 | }
202 |
203 | .ossUploadSide{
204 | float: left;
205 | width: 220px;
206 | height: 600px;
207 | background: #F0F0F0;
208 | border-right-width: 1px;
209 | border-right-style: solid;
210 | border-right-color: #ccc;
211 | -webkit-user-select: none;
212 | -moz-user-select: none;
213 | -ms-user-select: none;
214 | user-select: none;
215 | padding: 10px 5px 10px 8px;
216 | box-sizing: border-box;
217 | overflow: auto;
218 | }
219 | .ossUploadBody{
220 | position:relative;
221 | width:auto;
222 | margin-left:220px;
223 | height:600px;
224 | background-color: #fff;
225 | z-index: 200;
226 | }
227 | .ossUploadBody-head{
228 | min-height: 16.43px;
229 | padding: 15px;
230 | border-bottom: 2px solid #e5e5e5;
231 | }
232 | .oss-titile{
233 | margin:0px;
234 | font-weight: bolder;
235 | font-size: 18px;
236 | color: #666;
237 |
238 | }
239 | .ossUploadClose{
240 | float: right;
241 | font-size: 17px;
242 | font-weight: 700;
243 | line-height: 1;
244 | color: #000;
245 | text-shadow: 0 1px 0 #fff;
246 | cursor:pointer;
247 | }
248 | .ossUploadBody-content{
249 | box-sizing: border-box;
250 | -moz-box-sizing: border-box;
251 | -webkit-box-sizing: border-box;
252 | height: 100%;
253 | padding-bottom: 50px;
254 | }
255 |
256 |
257 |
258 | .ossUploadBody-foot{
259 | position: absolute;
260 | left: 0px;
261 | bottom: 0px;
262 | height: 50px;
263 | border-top: 1px solid #BFC7B7;
264 | width: 100%;
265 | background-color: #fff;
266 |
267 | }
268 | .ossUploadBody-foot .ossReportBox {
269 | font-size: 16px;
270 | margin: 13px 0;
271 | padding-left:10px;
272 | display: none;
273 | }
274 | .ossUploadBody-foot .ossReportBox .ossReport-name {
275 | font-weight: bolder;
276 | color: #0066CC;
277 | margin-right: 10px;
278 | font-size: 14px;
279 | }
280 | .ossUploadBody-foot .ossReportBox .ossReport-value {
281 | color:#333;
282 | }
283 |
284 |
285 |
286 |
287 | .ossFolder-list {
288 | list-style: none;
289 | margin: 0px;
290 | padding: 0px;
291 | }
292 | .ossFolder{
293 | font-size: 13px;
294 | color: #333;
295 | cursor: pointer;
296 | position: relative;
297 | }
298 | .activeFolder.select-placeholder{
299 | display: block;
300 | }
301 | .currentFolder.select-placeholder{
302 | display: block;
303 | }
304 | .select-placeholder {
305 | height: 23px;
306 | position: absolute;
307 | display: none;
308 | /* top: 0px; */
309 | margin-top: 3px;
310 | width: 200px;
311 | background: #217ADC;
312 | filter: alpha(opacity=20);
313 | opacity: 0.3;
314 | padding: 0 5px;
315 | }
316 |
317 | .select-placeholder.active{
318 | display:block;
319 | }
320 |
321 | .folder-icon{
322 | margin-right: 3px;
323 | position: relative;
324 | top: 4px;
325 | }
326 | .ossFolder .ossFolder{
327 | padding-left: 13px;
328 | }
329 | .ossFolderCreate {
330 | font-size: 13px;
331 | color: #333;
332 | cursor: pointer;
333 | position: relative;
334 | padding-left: 26px;
335 | top:2px;
336 | display:none;
337 | min-width: 180px;
338 | }
339 |
340 |
341 | .folder-collapse {
342 | color: #999;
343 | position: relative;
344 | }
345 | .folder-name {
346 | position:relative;
347 | }
348 | .folder-name .edit-name{
349 | height: 23px;
350 | position: absolute;
351 | margin: 0px;
352 | top: -6px;
353 | left: 0px;
354 | display:none;
355 | }
356 | .folder-name .edit-name .edit-name-box{
357 | width: 130px;
358 | }
359 |
360 |
361 |
362 | /** crumb **/
363 | .oss-module-crumbs {
364 | padding: 5px 0;
365 | position: relative;
366 | z-index: 95;
367 | }
368 | .oss-module-crumbs .ossCrumbs{
369 | display:none;
370 | padding: 0 0 0 25px;
371 | color: rgb(0, 102, 204);
372 | }
373 | .oss-module-crumbs .ossCrumbs .crumb-item{
374 | display: inline-block;
375 | max-width: 120px;
376 | white-space: nowrap;
377 | text-overflow: ellipsis;
378 | overflow: hidden;
379 | vertical-align: top;
380 |
381 | }
382 | .oss-module-crumbs .ossCrumbs .crumb-item-span{
383 | color:#333;
384 | }
385 | .oss-module-crumbs .ossCrumbs .crumb-item.current{
386 | color:#333;
387 | }
388 | .oss-module-crumbs .ossCrumbs-status{
389 | float:right;
390 | margin-right:20px;
391 | }
392 |
393 |
394 | .oss-module-toolbar{
395 | position: relative;
396 | z-index: 99;
397 | }
398 | .oss-module-toolbar .oss-bar{
399 | border-bottom: 1px solid #d2d2d2;
400 | background: #F7F7F7 left -53px repeat-x;
401 | padding: 10px 0px;
402 | }
403 | .oss-module-toolbar .oss-bar .toolbar-grid-view{
404 | float:right;
405 | margin-right: 20px;
406 | }
407 | .oss-module-toolbar .oss-bar .toolbar-list-view{
408 | float:right;
409 |
410 | }
411 | .oss-module-toolbar .tool:hover{
412 | color:red;
413 | }
414 | /** 上传按钮 */
415 | .oss-module-toolbar .oss-bar .toolbar-upload{
416 | position:relative;
417 | display: inline-block;
418 | height: 28px;
419 | line-height: 26px;
420 | line-height: 29px\9;
421 | color: #666;
422 | vertical-align: middle;
423 | margin: 0 0 0 5px;
424 | _position: relative;
425 | _top: 12px;
426 | padding: 0 10px;
427 | color: #fff;
428 | border-radius: 2px;
429 | background-color: #1A71D3;
430 | margin-left: 15px;
431 | background: -webkit-linear-gradient(top,#1778E6,#5399E8);
432 | background: -moz-linear-gradien(top,#1778E6,#5399E8);
433 | background: linear-gradient(top,#1778E6,#5399E8);
434 | }
435 | .oss-module-toolbar .oss-bar .toolbar-upload input{
436 | position: absolute;
437 | width: 95px;
438 | height: 28px;
439 | left: 0px;
440 | filter: alpha(opacity=00);
441 | opacity: 0;
442 | }
443 | .oss-module-toolbar .oss-bar .toolbar-upload .oss-icon{
444 | position:relative;
445 | top:3px;
446 | }
447 |
448 | .oss-module-toolbar .oss-bar .toolbar-new-dir{
449 | display: inline-block;
450 | }
451 | .oss-module-toolbar .oss-bar .toolbar-new-dir .oss-icon{
452 | width: 65px;
453 | height: 28px;
454 | line-height: 26px;
455 | line-height: 29px\9;
456 | padding-left: 31px;
457 | color: #666;
458 | vertical-align: middle;
459 | margin: 0 0 0 5px;
460 |
461 | }
462 |
463 |
464 | /** Module List View **/
465 | .oss-module-list-view {
466 | display:none;
467 | position: relative;
468 | width: 100%;
469 | padding-left: 20px;
470 | -webkit-box-sizing: border-box;
471 | -moz-box-sizing: border-box;
472 | box-sizing: border-box;
473 | height: 100%;
474 | padding-bottom: 77px;
475 |
476 | }
477 | .list-view-home {
478 | width: 100%;
479 | text-align: left;
480 | border-collapse: collapse;
481 | display: block;
482 | overflow: auto;
483 | height: 100%;
484 | box-sizing: border-box;
485 | -moz-box-sizing: border-box;
486 | -webkit-box-sizing: border-box;
487 | }
488 | .list-view-title{
489 | display: block;
490 | }
491 | .list-view-home .list-view-title tr {
492 | height: 40px;
493 | line-height: 41px;
494 | border-bottom: 1px solid #D2D2D2;
495 | border-top: 1px solid #D2D2D2;
496 | border-left: 1px solid #d2d2d2;
497 | background: #F7F7F7;
498 | cursor: pointer;
499 | width:100%;
500 | left: -1px;
501 | }
502 | .list-view-home tr th {
503 | padding-left:10px;
504 | }
505 | .view-list-content {
506 | display: block;
507 | overflow: auto;
508 | height: 100%;
509 | box-sizing: border-box;
510 | -moz-box-sizing: border-box;
511 | -webkit-box-sizing: border-box;
512 | height: inherit;
513 | width:100%;
514 | }
515 | .oss-module-list-view .list {
516 | position: relative;
517 | border-bottom: 1px solid #D2D2D2;
518 | display: block;
519 | cursor: pointer;
520 | width: 100%;
521 | height: 40px;
522 |
523 | }
524 | .view-list-content .list.item_active {
525 | background-color:rgb(242, 247, 255);
526 | }
527 | .view-list-content .list.item_check {
528 | background-color:rgb(242, 247, 255);
529 | }
530 | .oss-module-list-view .oss-list-check {
531 | display: inline-block;
532 | position: relative;
533 | top: 5px;
534 | }
535 | .view-list-content .list.item_active .oss-list-action{
536 | display:block !important;
537 | cursor:pointer;
538 | }
539 | .oss-module-list-view .list th{
540 | position:relative;
541 | display: block;
542 | height:40px;
543 | }
544 | .oss-module-list-view .list .col1 {
545 | width: 60%;
546 | float:left;
547 | padding: 5px 0 11px 4;
548 | box-sizing: border-box;
549 |
550 | }
551 | .oss-module-list-view .list .col2{
552 | width: 20%;
553 | box-sizing: border-box;
554 | float: left;
555 | padding: 9px 0;
556 | }
557 | .oss-module-list-view .list .col3{
558 | box-sizing: border-box;
559 | float: left;
560 | padding: 9px 0;
561 | }
562 | .view-list-content .list .col1 .oss-list-action{
563 | position: absolute;
564 | display:none ;
565 | top: 0px;
566 | right: 15px;
567 | height: 38px;
568 | background-color: #f0f8fd;
569 | }
570 | .view-list-content .list .col1 .oss-list-action .action{
571 | display: inline-block;
572 | height: 20px;
573 | width: 20px;
574 | margin: 10px 0 0 5px;
575 | }
576 | .view-list-content .list .col1 .oss-list-action .action.more-wrapper{
577 | position:relative;
578 | }
579 | .view-list-content .list .col1 .oss-list-action .action.more-wrapper .more-list{
580 | top: auto;
581 | bottom: 25px;
582 | }
583 | .view-list-content .list .col1 .oss-list-action .action.more-wrapper .more-list-up{
584 | position: absolute;
585 | top: 19px;
586 | left: -37px;
587 | width: 100px;
588 | text-align: center;
589 | background: none repeat scroll 0 0 #FFF;
590 | border: 1px solid #CFCFCF;
591 | box-shadow: 0 2px 3px #CFCFCF;
592 | border-radius: 3px;
593 | text-indent: 0;
594 | display: none;
595 | z-index: 9999;
596 | height: 112px;
597 |
598 | }
599 | .view-list-content .list .col1 .oss-list-action .action.more-wrapper .more-list-up .more-item{
600 | display: block;
601 | color: #666;
602 | display: block;
603 | border-bottom: 1px solid #E7E7E7;
604 | line-height: 27px;
605 | background:inherit;
606 |
607 | }
608 | .view-list-content .list .col1 .oss-list-action .action.more-wrapper .more-list-up .more-item:hover{
609 | background-color: #f0f8fd
610 | }
611 | .view-list-content .oss-list-filename {
612 | margin-left: 5px;
613 | }
614 | .view-list-content .oss-list-icon{
615 | position: relative;
616 | display:inline-block;
617 | top: 4px;
618 | padding: 0 3px;
619 | height:20px;
620 | }
621 |
622 |
623 |
624 |
625 |
626 |
627 | .oss-module-context-menu ul{
628 | list-style: none;
629 | padding: 5px 5px;
630 | padding: 4px 0;
631 | width: 100px;
632 | position: fixed;
633 | background: #fefefe;
634 | -webkit-box-shadow: 0 2px 2px rgba(0,0,0,.1);
635 | box-shadow: 0 2px 2px rgba(0,0,0,.1);
636 | -moz-border-radius: 2px;
637 | -webkit-border-radius: 2px;
638 | -khtml-border-radius: 2px;
639 | border-radius: 2px;
640 | border: 1px solid #d2d2d2;
641 | z-index: 100;
642 | _position: absolute;
643 | display:none;
644 | }
645 | .oss-module-context-menu li{
646 | padding-left: 17px;
647 | text-align: left;
648 | color: #666;
649 | display: block;
650 | border-bottom: 1px solid #E7E7E7;
651 | line-height: 27px;
652 | background: inherit;
653 | cursor: pointer;
654 | }
655 | .oss-module-context-menu li:hover{
656 | background: #f0f8fd;
657 | }
658 | .menu-folder{
659 | left:100px;
660 | top:100px;
661 | }
662 |
663 |
664 |
665 | .oss-module-check-actions {
666 | position: relative;
667 | height: 50px;
668 | padding: 10px 0;
669 | box-sizing: border-box;
670 | display:none;
671 | }
672 | .oss-module-check-actions .text{
673 | margin:0 10px 0 30px;
674 | }
675 |
676 | .oss-module-check-actions a{
677 | display: inline-block;
678 | padding: 0px 13px;
679 | color: #333;
680 | height: 28px;
681 | border-radius: 2px;
682 | background: #F0F0F0;
683 | cursor: pointer;
684 | border: 1px solid #A8A8A8;
685 | color:#666;
686 | margin-right: 10px;
687 | }
688 | .oss-module-check-actions a:hover{
689 | color:#1A71D3;
690 | }
691 | .oss-module-check-actions a .oss-icon{
692 | position: relative;
693 | top: 3px;
694 | margin-right: 5px;
695 | }
696 |
697 |
698 |
699 |
700 | .oss-module-upload {
701 | position: absolute;
702 | width: 700px;
703 | right: 0px;
704 | bottom: 0px;
705 | z-index: 999;
706 | background: #fff;
707 | border-top: 1px solid #ccc;
708 | border-left: 1px solid #ccc;
709 | outline: 0;
710 | -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
711 | box-shadow: 0 3px 9px rgba(0,0,0,.5);
712 | display:none;
713 |
714 | }
715 | .oss-module-upload .upload-title {
716 | padding: 8px 5px;
717 | border-bottom: 1px solid #ccc;
718 | background: #3E8BE3;
719 | color: #fff;
720 |
721 | }
722 | .oss-module-upload .upload-title .close{
723 | position: absolute;
724 | right: 20px;
725 | background-position: -110px -76px;
726 | }
727 | .oss-module-upload .upload-list-wrapper{
728 | height: 400px;
729 | overflow: auto;
730 | position:relative;
731 | }
732 | .oss-module-upload .upload-list {
733 | overflow-y: auto;
734 | width: 100%;
735 | border-collapse: collapse;
736 | table-layout: fixed;
737 | }
738 | .oss-module-upload .upload-list .upload-list-head {
739 | border-bottom: 1px solid #ccc;
740 | }
741 | .oss-module-upload .upload-list tr{
742 | height:35px;
743 | border-bottom: 1px solid #ccc;
744 | }
745 | .oss-module-upload .upload-list tr th{
746 | overflow: hidden;
747 | white-space: nowrap;
748 | text-overflow: ellipsis;
749 | }
750 | .oss-module-upload .upload-list tr th.list-placehoder{
751 | position: absolute;
752 | height: 32px;
753 | background: #3E8BE3;
754 | z-index: 888;
755 | left: -2px;
756 | opacity: .2;
757 | }
758 | .oss-module-upload .upload-list tr th.o-name{
759 | width:40%;
760 | }
761 | .oss-module-upload .upload-list tr th.o-folder{
762 | width:30%;
763 | color: #3E8BE3;
764 | }
765 | .oss-module-upload .upload-list tr th.o-size{
766 | width:10%;
767 | text-indent: 1em;
768 | color: #3E8BE3;
769 | }
770 | .oss-module-upload .upload-list tr th.o-status{
771 | width:20%;
772 | color:#3E8BE3;
773 | }
774 |
775 |
776 |
777 | .oss-module-grid-view {
778 | display:block;
779 | width: 100%;
780 | box-sizing: border-box;
781 | height: 100%;
782 | padding-bottom: 77px;
783 | }
784 | .oss-module-grid-view .grid-view-content{
785 | height: 100%;
786 | overflow: auto;
787 | }
788 | .oss-module-grid-view .grid {
789 | width: 100px;
790 | margin: 5px 7px;
791 | text-align: center;
792 | position: relative;
793 | display:inline-block;
794 | }
795 | .oss-module-grid-view .grid .grid-image{
796 | width: 100px;
797 | height: 100px;
798 | display: table-cell;
799 | vertical-align: middle;
800 | border: 1px solid #ccc;
801 | }
802 | .oss-module-grid-view .grid .grid-image img {
803 | max-width: 100px;
804 | max-height: 100px;
805 | vertical-align: middle;
806 | width: 100px;
807 | }
808 | .oss-module-grid-view .grid .grid-name {
809 | display: block;
810 | text-overflow: ellipsis;
811 | white-space: normal;
812 | overflow: hidden;
813 | height: 1.5rem;
814 | }
815 | .oss-module-grid-view .grid .grid-check{
816 | position: absolute;
817 | top: 0px;
818 | overflow:pointer;
819 | }
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/accdb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/accdb.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/avi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/avi.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/bmp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/bmp.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/btn_icon.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/btn_icon.gif
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/css.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/css.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/docx_mac.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/docx_mac.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/docx_win.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/docx_win.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/eml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/eml.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/eps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/eps.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/fla.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/fla.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/gif.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/gif.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/html.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/html.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/icons.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/icons.gif
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/ind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/ind.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/ini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/ini.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/jpeg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/jpeg.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/jsf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/jsf.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/large_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/large_icon.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/midi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/midi.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/mov.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/mov.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/mp3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/mp3.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/mpeg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/mpeg.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/pdf.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/png.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/png.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/pptx_mac.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/pptx_mac.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/pptx_win.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/pptx_win.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/proj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/proj.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/psd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/psd.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/pst.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/pst.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/pub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/pub.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/rar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/rar.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/readme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/readme.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/settings.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/text.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/tiff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/tiff.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/url.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/vsd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/vsd.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/wav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/wav.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/wma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/wma.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/wmv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/wmv.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/xlsx_mac.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/xlsx_mac.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/xlsx_win.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/xlsx_win.png
--------------------------------------------------------------------------------
/public/assets/fileManager/icon/zip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/public/assets/fileManager/icon/zip.png
--------------------------------------------------------------------------------
/public/assets/fileManager/style/style.css:
--------------------------------------------------------------------------------
1 | *{
2 | font: 12px/1.5 tahoma,arial,"宋体";
3 | }
4 | a{
5 | color: #06c;
6 | text-decoration: none;
7 | }
8 |
9 | .oss-icon-small{
10 | background: url(./icon/icons.gif) 9999px 9999px no-repeat;
11 | width:20px;
12 | }
13 | .oss-icon-small.icon_mp3{
14 | background-position: -193px -80px;
15 | }
16 | .oss-icon-small.icon_dir{
17 | background-position: -2px 0px;
18 | }
19 | .oss-icon-small.icon-zip{
20 | background-position: -349px 81px;
21 | }
22 | .oss-icon-small.icon_image{
23 | background-position: -2px -80px;
24 | }
25 | .oss-icon-small.icon_txt {
26 | background-position: -162px -80px;
27 | }
28 |
29 |
30 |
31 | /** General icon */
32 | .oss-icon {
33 | display: inline-block;
34 | min-width: 20px;
35 | min-height: 20px;
36 | background: url(../icon/btn_icon.gif) no-repeat;
37 | }
38 | .oss-icon-s{
39 | display: inline-block;
40 | min-width: 10px;
41 | min-height: 10px;
42 | background: url(../icon/btn_icon.gif) no-repeat;
43 | }
44 | .oss-icon.share:hover{
45 | background-position: -182px -59px; /** x + 31 */
46 | }
47 | .oss-icon.share{
48 | background-position: -208px -230px;
49 | }
50 | .oss-icon.blank{
51 | background-position: -111px 3px;
52 | }
53 | .oss-icon.check{
54 | background-position: -111px -16px;
55 | }
56 | .oss-icon.blank_b {
57 | background-position: 0 -311px;
58 | }
59 | .oss-icon.check_b {
60 | background-position: 0px -346px;
61 | }
62 | .oss-icon.download{
63 | background-position: -207px -210px;
64 | }
65 | .oss-icon.download:hover{
66 | background-position: -181px -39px; /** x + 31 */
67 | }
68 | .oss-icon.download-light{
69 | background-position: -207px -485px;
70 | }
71 | .oss-icon.download-light:hover{
72 | background-position: -182px -37px; /** x + 31 */
73 | }
74 | .oss-icon.more{
75 | background-position: -208px -351px;
76 | }
77 | .oss-icon.more:hover{
78 | background-position: -182px -308px;
79 | }
80 | .oss-icon.createfile{
81 | background-position: 0 -416px;
82 | }
83 | .oss-icon.createfile:hover{
84 | background-position: 0 -448px;
85 | }
86 | .oss-icon.bucket{
87 | background-position: -0px -59px;
88 | width: 24px
89 | }
90 | .oss-icon.folder{
91 | background-position: -0px -224px;
92 | width: 24px;
93 | }
94 | .oss-icon.upload{
95 | background-position: -180px -280px;
96 | width: 24px;
97 | }
98 | .oss-icon.delete{
99 | background-position: -156px -128px;
100 | }
101 | .oss-icon.delete:hover{
102 | background-position: -230px -150px;
103 | }
104 | .oss-icon.list{
105 | background-position: -65px -237px;
106 | width: 33px;
107 | height: 29px;
108 | }
109 | .oss-icon.list-selected{
110 | background-position: -65px -268px;
111 | width: 33px;
112 | height: 29px;
113 | }
114 | .oss-icon.grid{
115 | background-position: -98px -268px;
116 | width: 33px;
117 | height: 29px;
118 | }
119 | .oss-icon.grid-selected{
120 | background-position: -98px -237px;
121 | width: 33px;
122 | height: 29px;
123 | }
124 | .oss-icon.grid:hover{
125 | background-position: -121px -141px;
126 | width: 33px;
127 | height: 29px;
128 | }
129 | .oss-icon.list:hover{
130 | background-position: -88px -140px;
131 | width: 33px;
132 | height: 29px;
133 | }
134 | .oss-icon.drapout{
135 | background-position: -207px -417px;
136 | }
137 | .oss-icon.drapout:hover{
138 | background-position: -227px -417px;
139 | }
140 | .oss-icon-s.plus{
141 | background-position: -237px -265px;
142 | height: 11px;
143 | width: 11px;
144 | }
145 | .oss-icon-s.minus{
146 | background-position: -237px -247px;
147 | height: 11px;
148 | width: 11px;
149 | }
150 | .oss-icon-s.smile{
151 | background-position: -237px -265px;
152 | height: 11px;
153 | width: 11px;
154 | }
155 | .oss-icon-s.close{
156 | background-position: -276px -42px;
157 | width: 25px;
158 | height: 25px;
159 | }
160 | .oss-icon-s.close:hover{
161 | background-position: -251px -42px;
162 | width: 25px;
163 | height: 25px;
164 | }
165 | .oss-icon.server {
166 | background-position: -181px 3px;
167 | width: 24px;
168 | }
169 | .oss-icon.server-offline {
170 | background-position: -157px 3px;
171 | width: 24px;
172 | }
173 | .oss-icon.online {
174 | background-position: -267px -211px;
175 | }
176 |
177 |
178 |
179 |
180 |
181 | .clearfix{clear:both;}
182 | .clearfix:before { clear:both ;content: '' ;display: block;}
183 | .clearfix:after{ clear:both ;content: '' ;display: block;}
184 |
185 | .ossUploadWrapper{
186 | position: fixed;
187 | top: 0;
188 | right: 0;
189 | bottom: 0;
190 | left: 0;
191 | z-index: 1050;
192 | overflow: hidden;
193 | -webkit-overflow-scrolling: touch;
194 | outline: 0;
195 | background: rgba(0,0,0,0.3);
196 |
197 | }
198 | .ossUpload{
199 | position: relative;
200 | margin: 30 auto;
201 | width:1400px;
202 | -webkit-box-shadow: 0 2px 3px rgba(0,0,0,0.125);
203 | box-shadow: 0 2px 3px rgba(0,0,0,0.125);
204 | background-color: #fff;
205 | -webkit-background-clip: padding-box;
206 | background-clip: padding-box; outline: 0;
207 | -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
208 | box-shadow: 0 3px 9px rgba(0,0,0,.5);
209 | }
210 |
211 | .ossUploadSide{
212 | float: left;
213 | width: 220px;
214 | height: 600px;
215 | background: #3D3D3D;
216 | border-right-width: 1px;
217 | border-right-style: solid;
218 | border-right-color: #ccc;
219 | -webkit-user-select: none;
220 | -moz-user-select: none;
221 | -ms-user-select: none;
222 | user-select: none;
223 | padding: 0 0 10px 0;
224 | box-sizing: border-box;
225 | overflow: auto;
226 | }
227 | .ossUploadBody{
228 | position:relative;
229 | width:auto;
230 | margin-left:220px;
231 | height:600px;
232 | background-color: #fff;
233 | z-index: 200;
234 | }
235 | .ossUploadBody-head{
236 | min-height: 16.43px;
237 | padding: 15px;
238 | border-bottom: 2px solid #e5e5e5;
239 | }
240 | .oss-titile{
241 | margin:0px;
242 | font-weight: bolder;
243 | font-size: 18px;
244 | color: #666;
245 |
246 | }
247 | .ossUploadClose{
248 | float: right;
249 | font-size: 17px;
250 | font-weight: 700;
251 | line-height: 1;
252 | color: #000;
253 | text-shadow: 0 1px 0 #fff;
254 | cursor:pointer;
255 | }
256 | .ossUploadBody-content{
257 | box-sizing: border-box;
258 | -moz-box-sizing: border-box;
259 | -webkit-box-sizing: border-box;
260 | height: 100%;
261 | padding-bottom: 50px;
262 | }
263 |
264 |
265 |
266 | .ossUploadBody-foot{
267 | position: absolute;
268 | left: 0px;
269 | bottom: 0px;
270 | height: 50px;
271 | border-top: 1px solid #BFC7B7;
272 | width: 100%;
273 | background-color: #fff;
274 |
275 | }
276 | .ossUploadBody-foot .ossReportBox {
277 | font-size: 16px;
278 | margin: 13px 0;
279 | padding-left:10px;
280 | display: none;
281 | }
282 | .ossUploadBody-foot .ossReportBox .ossReport-name {
283 | font-weight: bolder;
284 | color: #0066CC;
285 | margin-right: 10px;
286 | font-size: 14px;
287 | }
288 | .ossUploadBody-foot .ossReportBox .ossReport-value {
289 | color:#333;
290 | }
291 |
292 |
293 |
294 |
295 | .ossFolder-list {
296 | list-style: none;
297 | margin: 0px;
298 | padding: 0px;
299 | }
300 | .ossFolder{
301 | font-size: 13px;
302 | color: #333;
303 | cursor: pointer;
304 | position: relative;
305 | }
306 | .activeFolder.select-placeholder{
307 | display: block;
308 | }
309 | .currentFolder.select-placeholder{
310 | display: block;
311 | }
312 | .select-placeholder {
313 | height: 23px;
314 | position: absolute;
315 | display: none;
316 | /* top: 0px; */
317 | margin-top: 3px;
318 | width: 200px;
319 | background: #217ADC;
320 | filter: alpha(opacity=20);
321 | opacity: 0.3;
322 | padding: 0 5px;
323 | }
324 |
325 | .select-placeholder.active{
326 | display:block;
327 | }
328 |
329 | .folder-icon{
330 | margin-right: 3px;
331 | position: relative;
332 | top: 4px;
333 | }
334 | .ossFolder .ossFolder{
335 | padding-left: 13px;
336 | }
337 | .ossFolderCreate {
338 | font-size: 13px;
339 | color: #333;
340 | cursor: pointer;
341 | position: relative;
342 | padding-left: 26px;
343 | top:2px;
344 | display:none;
345 | min-width: 180px;
346 | }
347 |
348 |
349 | .folder-collapse {
350 | color: #999;
351 | position: relative;
352 | }
353 | .folder-name {
354 | position:relative;
355 | }
356 | .folder-name .edit-name{
357 | height: 23px;
358 | position: absolute;
359 | margin: 0px;
360 | top: -6px;
361 | left: 0px;
362 | display:none;
363 | }
364 | .folder-name .edit-name .edit-name-box{
365 | width: 130px;
366 | }
367 |
368 |
369 |
370 | /** crumb **/
371 | .oss-module-crumbs {
372 | padding: 5px 0;
373 | position: relative;
374 | z-index: 95;
375 | }
376 | .oss-module-crumbs .ossCrumbs{
377 | display:none;
378 | padding: 0 0 0 25px;
379 | color: rgb(0, 102, 204);
380 | }
381 | .oss-module-crumbs .ossCrumbs .crumb-item{
382 | display: inline-block;
383 | max-width: 120px;
384 | white-space: nowrap;
385 | text-overflow: ellipsis;
386 | overflow: hidden;
387 | vertical-align: top;
388 |
389 | }
390 | .oss-module-crumbs .ossCrumbs .crumb-item-span{
391 | color:#333;
392 | }
393 | .oss-module-crumbs .ossCrumbs .crumb-item.current{
394 | color:#333;
395 | }
396 | .oss-module-crumbs .ossCrumbs-status{
397 | float:right;
398 | margin-right:20px;
399 | }
400 |
401 |
402 | .oss-module-toolbar{
403 | position: relative;
404 | z-index: 99;
405 | }
406 | .oss-module-toolbar .oss-bar{
407 | border-bottom: 1px solid #d2d2d2;
408 | background: #F7F7F7 left -53px repeat-x;
409 | padding: 10px 0px;
410 | }
411 | .oss-module-toolbar .oss-bar .toolbar-grid-view{
412 | float:right;
413 | margin-right: 20px;
414 | }
415 | .oss-module-toolbar .oss-bar .toolbar-list-view{
416 | float:right;
417 |
418 | }
419 | .oss-module-toolbar .tool:hover{
420 | color:red;
421 | }
422 | /** 上传按钮 */
423 | .oss-module-toolbar .oss-bar .toolbar-upload{
424 | position:relative;
425 | display: inline-block;
426 | height: 28px;
427 | line-height: 26px;
428 | line-height: 29px\9;
429 | color: #666;
430 | vertical-align: middle;
431 | margin: 0 0 0 5px;
432 | _position: relative;
433 | _top: 12px;
434 | padding: 0 10px;
435 | color: #fff;
436 | border-radius: 2px;
437 | background-color: #1A71D3;
438 | margin-left: 15px;
439 | background: -webkit-linear-gradient(top,#1778E6,#5399E8);
440 | background: -moz-linear-gradien(top,#1778E6,#5399E8);
441 | background: linear-gradient(top,#1778E6,#5399E8);
442 | }
443 | .oss-module-toolbar .oss-bar .toolbar-upload input{
444 | position: absolute;
445 | width: 95px;
446 | height: 28px;
447 | left: 0px;
448 | filter: alpha(opacity=00);
449 | opacity: 0;
450 | }
451 | .oss-module-toolbar .oss-bar .toolbar-upload .oss-icon{
452 | position:relative;
453 | top:3px;
454 | }
455 |
456 | .oss-module-toolbar .oss-bar .toolbar-new-dir{
457 | display: inline-block;
458 | }
459 | .oss-module-toolbar .oss-bar .toolbar-new-dir .oss-icon{
460 | width: 65px;
461 | height: 28px;
462 | line-height: 26px;
463 | line-height: 29px\9;
464 | padding-left: 31px;
465 | color: #666;
466 | vertical-align: middle;
467 | margin: 0 0 0 5px;
468 |
469 | }
470 |
471 |
472 | /** Module List View **/
473 | .oss-module-list-view {
474 | display:none;
475 | position: relative;
476 | width: 100%;
477 | padding-left: 20px;
478 | -webkit-box-sizing: border-box;
479 | -moz-box-sizing: border-box;
480 | box-sizing: border-box;
481 | height: 100%;
482 | padding-bottom: 77px;
483 |
484 | }
485 | .list-view-home {
486 | width: 100%;
487 | text-align: left;
488 | border-collapse: collapse;
489 | display: block;
490 | overflow: auto;
491 | height: 100%;
492 | box-sizing: border-box;
493 | -moz-box-sizing: border-box;
494 | -webkit-box-sizing: border-box;
495 | }
496 | .list-view-title{
497 | display: block;
498 | }
499 | .list-view-home .list-view-title tr {
500 | height: 40px;
501 | line-height: 41px;
502 | border-bottom: 1px solid #D2D2D2;
503 | border-top: 1px solid #D2D2D2;
504 | border-left: 1px solid #d2d2d2;
505 | background: #F7F7F7;
506 | cursor: pointer;
507 | width:100%;
508 | left: -1px;
509 | }
510 | .list-view-home tr th {
511 | padding-left:10px;
512 | }
513 | .view-list-content {
514 | display: block;
515 | overflow: auto;
516 | height: 100%;
517 | box-sizing: border-box;
518 | -moz-box-sizing: border-box;
519 | -webkit-box-sizing: border-box;
520 | height: inherit;
521 | width:100%;
522 | }
523 | .oss-module-list-view .list {
524 | position: relative;
525 | border-bottom: 1px solid #D2D2D2;
526 | display: block;
527 | cursor: pointer;
528 | width: 100%;
529 | height: 40px;
530 |
531 | }
532 | .view-list-content .list.item_active {
533 | background-color:rgb(242, 247, 255);
534 | }
535 | .view-list-content .list.item_check {
536 | background-color:rgb(242, 247, 255);
537 | }
538 | .oss-module-list-view .oss-list-check {
539 | display: inline-block;
540 | position: relative;
541 | top: 5px;
542 | }
543 | .view-list-content .list.item_active .oss-list-action{
544 | display:block !important;
545 | cursor:pointer;
546 | }
547 | .oss-module-list-view .list th{
548 | position:relative;
549 | display: block;
550 | height:40px;
551 | }
552 | .oss-module-list-view .list .col1 {
553 | width: 60%;
554 | float:left;
555 | padding: 5px 0 11px 4;
556 | box-sizing: border-box;
557 |
558 | }
559 | .oss-module-list-view .list .col2{
560 | width: 20%;
561 | box-sizing: border-box;
562 | float: left;
563 | padding: 9px 0;
564 | }
565 | .oss-module-list-view .list .col3{
566 | box-sizing: border-box;
567 | float: left;
568 | padding: 9px 0;
569 | }
570 | .view-list-content .list .col1 .oss-list-action{
571 | position: absolute;
572 | display:none ;
573 | top: 0px;
574 | right: 15px;
575 | height: 38px;
576 | background-color: #f0f8fd;
577 | }
578 | .view-list-content .list .col1 .oss-list-action .action{
579 | display: inline-block;
580 | height: 20px;
581 | width: 20px;
582 | margin: 10px 0 0 5px;
583 | }
584 | .view-list-content .list .col1 .oss-list-action .action.more-wrapper{
585 | position:relative;
586 | }
587 | .view-list-content .list .col1 .oss-list-action .action.more-wrapper .more-list{
588 | top: auto;
589 | bottom: 25px;
590 | }
591 | .view-list-content .list .col1 .oss-list-action .action.more-wrapper .more-list-up{
592 | position: absolute;
593 | top: 19px;
594 | left: -37px;
595 | width: 100px;
596 | text-align: center;
597 | background: none repeat scroll 0 0 #FFF;
598 | border: 1px solid #CFCFCF;
599 | box-shadow: 0 2px 3px #CFCFCF;
600 | border-radius: 3px;
601 | text-indent: 0;
602 | display: none;
603 | z-index: 9999;
604 | height: 112px;
605 |
606 | }
607 | .view-list-content .list .col1 .oss-list-action .action.more-wrapper .more-list-up .more-item{
608 | display: block;
609 | color: #666;
610 | display: block;
611 | border-bottom: 1px solid #E7E7E7;
612 | line-height: 27px;
613 | background:inherit;
614 |
615 | }
616 | .view-list-content .list .col1 .oss-list-action .action.more-wrapper .more-list-up .more-item:hover{
617 | background-color: #f0f8fd
618 | }
619 | .view-list-content .oss-list-filename {
620 | margin-left: 5px;
621 | }
622 | .view-list-content .oss-list-icon{
623 | position: relative;
624 | display:inline-block;
625 | top: 4px;
626 | padding: 0 3px;
627 | height:20px;
628 | }
629 |
630 |
631 |
632 |
633 |
634 |
635 | .oss-module-context-menu ul{
636 | list-style: none;
637 | padding: 5px 5px;
638 | padding: 4px 0;
639 | width: 100px;
640 | position: fixed;
641 | background: #fefefe;
642 | -webkit-box-shadow: 0 2px 2px rgba(0,0,0,.1);
643 | box-shadow: 0 2px 2px rgba(0,0,0,.1);
644 | -moz-border-radius: 2px;
645 | -webkit-border-radius: 2px;
646 | -khtml-border-radius: 2px;
647 | border-radius: 2px;
648 | border: 1px solid #d2d2d2;
649 | z-index: 100;
650 | _position: absolute;
651 | display:none;
652 | }
653 | .oss-module-context-menu li{
654 | padding-left: 17px;
655 | text-align: left;
656 | color: #666;
657 | display: block;
658 | border-bottom: 1px solid #E7E7E7;
659 | line-height: 27px;
660 | background: inherit;
661 | cursor: pointer;
662 | }
663 | .oss-module-context-menu li:hover{
664 | background: #f0f8fd;
665 | }
666 | .menu-folder{
667 | left:100px;
668 | top:100px;
669 | }
670 |
671 |
672 |
673 | .oss-module-check-actions {
674 | position: relative;
675 | height: 50px;
676 | padding: 10px 0;
677 | box-sizing: border-box;
678 | display:none;
679 | }
680 | .oss-module-check-actions .text{
681 | margin:0 10px 0 30px;
682 | }
683 |
684 | .oss-module-check-actions a{
685 | display: inline-block;
686 | padding: 0px 13px;
687 | color: #333;
688 | height: 28px;
689 | border-radius: 2px;
690 | background: #F0F0F0;
691 | cursor: pointer;
692 | border: 1px solid #A8A8A8;
693 | color:#666;
694 | margin-right: 10px;
695 | }
696 | .oss-module-check-actions a:hover{
697 | color:#1A71D3;
698 | }
699 | .oss-module-check-actions a .oss-icon{
700 | position: relative;
701 | top: 3px;
702 | margin-right: 5px;
703 | }
704 |
705 |
706 |
707 |
708 | .oss-module-upload {
709 | position: absolute;
710 | width: 700px;
711 | right: 0px;
712 | bottom: 0px;
713 | z-index: 999;
714 | background: #fff;
715 | border-top: 1px solid #ccc;
716 | border-left: 1px solid #ccc;
717 | outline: 0;
718 | -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
719 | box-shadow: 0 3px 9px rgba(0,0,0,.5);
720 | display:none;
721 |
722 | }
723 | .oss-module-upload .upload-title {
724 | padding: 8px 5px;
725 | border-bottom: 1px solid #ccc;
726 | background: #3E8BE3;
727 | color: #fff;
728 |
729 | }
730 | .oss-module-upload .upload-title .close{
731 | position: absolute;
732 | right: 20px;
733 | background-position: -110px -76px;
734 | }
735 | .oss-module-upload .upload-list-wrapper{
736 | height: 400px;
737 | overflow: auto;
738 | position:relative;
739 | }
740 | .oss-module-upload .upload-list {
741 | overflow-y: auto;
742 | width: 100%;
743 | border-collapse: collapse;
744 | table-layout: fixed;
745 | }
746 | .oss-module-upload .upload-list .upload-list-head {
747 | border-bottom: 1px solid #ccc;
748 | }
749 | .oss-module-upload .upload-list tr{
750 | height:35px;
751 | border-bottom: 1px solid #ccc;
752 | }
753 | .oss-module-upload .upload-list tr th{
754 | overflow: hidden;
755 | white-space: nowrap;
756 | text-overflow: ellipsis;
757 | }
758 | .oss-module-upload .upload-list tr th.list-placehoder{
759 | position: absolute;
760 | height: 32px;
761 | background: #3E8BE3;
762 | z-index: 888;
763 | left: -2px;
764 | opacity: .2;
765 | }
766 | .oss-module-upload .upload-list tr th.o-name{
767 | width:40%;
768 | }
769 | .oss-module-upload .upload-list tr th.o-folder{
770 | width:30%;
771 | color: #3E8BE3;
772 | }
773 | .oss-module-upload .upload-list tr th.o-size{
774 | width:10%;
775 | text-indent: 1em;
776 | color: #3E8BE3;
777 | }
778 | .oss-module-upload .upload-list tr th.o-status{
779 | width:20%;
780 | color:#3E8BE3;
781 | }
782 |
783 |
784 |
785 | .oss-module-grid-view {
786 | display:block;
787 | width: 100%;
788 | box-sizing: border-box;
789 | height: 100%;
790 | padding-bottom: 77px;
791 | }
792 | .oss-module-grid-view .grid-view-content{
793 | height: 100%;
794 | overflow: auto;
795 | }
796 | .oss-module-grid-view .grid {
797 | width: 100px;
798 | margin: 5px 7px;
799 | text-align: center;
800 | position: relative;
801 | display:inline-block;
802 | }
803 | .oss-module-grid-view .grid .grid-image{
804 | width: 100px;
805 | height: 100px;
806 | display: table-cell;
807 | vertical-align: middle;
808 | border: 1px solid #ccc;
809 | }
810 | .oss-module-grid-view .grid .grid-image img {
811 | max-width: 100px;
812 | max-height: 100px;
813 | vertical-align: middle;
814 | width: 100px;
815 | }
816 | .oss-module-grid-view .grid .grid-name {
817 | display: block;
818 | text-overflow: ellipsis;
819 | white-space: normal;
820 | overflow: hidden;
821 | height: 1.5rem;
822 | }
823 | .oss-module-grid-view .grid .grid-check{
824 | position: absolute;
825 | top: 0px;
826 | overflow:pointer;
827 | }
--------------------------------------------------------------------------------
/public/assets/fileManager/templates/Main.template.html:
--------------------------------------------------------------------------------
1 |
19 |
--------------------------------------------------------------------------------
/public/javascripts/main.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 | window.fileManager = $('#fileManager').fileManager({
3 |
4 | //配置服务
5 | Service: [{
6 | // 本地服务
7 | serviceName: 'local',
8 | server: 'http://localhost:3001',
9 |
10 | listBuckets: {
11 | method: 'GET',
12 | endpoint: '/api/localCloud/buckets'
13 | },
14 |
15 | listFolders: {
16 | method: 'GET',
17 | endpoint: '/api/localCloud/folders'
18 | },
19 |
20 | listObjects: {
21 | method: 'GET',
22 | endpoint: '/api/localCloud/objects'
23 | },
24 |
25 | createFolder: {
26 | method: 'POST',
27 | endpoint: '/api/localCloud/folders'
28 | // post newFolderName
29 | },
30 |
31 | // keys的删除均以队列的形式一一删除,
32 | deleteObject: {
33 | method: 'DELETE',
34 | endpoint: '/api/localCloud/object'
35 | // post deleteObjects;
36 | },
37 | reNameObject: {
38 | method: 'PUT',
39 | endpoint: '/api/localCloud/object'
40 | },
41 |
42 | moveObject: {
43 | method: 'POST',
44 | endpoint: '/api/localCloud/object'
45 | },
46 |
47 | createObject: {
48 | method: 'POST',
49 | endpoint: '/api/localCloud/file'
50 | },
51 | downloadObject: {
52 | method: 'GET',
53 | endpoint: '/api/localCloud/object'
54 | }
55 |
56 | }, {
57 | serviceName: '阿里云OSS',
58 | server: 'http://localhost:3001',
59 | listBuckets: {
60 | method: 'GET',
61 | endpoint: '/api/aliyunOss/buckets'
62 | },
63 | listObjects: {
64 | method: 'GET',
65 | endpoint: '/api/aliyunOss/objects'
66 | }
67 | }],
68 |
69 | //
70 | Title: 'Great File Manager',
71 | debug: true
72 | });
73 | });
74 |
--------------------------------------------------------------------------------
/public/stylesheets/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding: 50px;
3 | font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
4 | }
5 |
6 | a {
7 | color: #00B7FF;
8 | }
9 |
--------------------------------------------------------------------------------
/screenshot/Screen Shot 2016-02-17 at 6.31.26 PM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/screenshot/Screen Shot 2016-02-17 at 6.31.26 PM.png
--------------------------------------------------------------------------------
/screenshot/Screen Shot 2016-02-17 at 6.31.28 PM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/screenshot/Screen Shot 2016-02-17 at 6.31.28 PM.png
--------------------------------------------------------------------------------
/screenshot/Screen Shot 2016-02-17 at 6.31.37 PM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/screenshot/Screen Shot 2016-02-17 at 6.31.37 PM.png
--------------------------------------------------------------------------------
/screenshot/Screen Shot 2016-02-17 at 6.31.38 PM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/screenshot/Screen Shot 2016-02-17 at 6.31.38 PM.png
--------------------------------------------------------------------------------
/uploads/16c31b8b8e17e327add370988aa89dea:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/uploads/16c31b8b8e17e327add370988aa89dea
--------------------------------------------------------------------------------
/uploads/6145a07746bc65377b9a7d87e2cdda65:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/uploads/6145a07746bc65377b9a7d87e2cdda65
--------------------------------------------------------------------------------
/uploads/71cde446f4eed5721c83ec1a98741f1e:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/uploads/71cde446f4eed5721c83ec1a98741f1e
--------------------------------------------------------------------------------
/uploads/7bf7616ab81c66ca8036c560f9951e8f:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/uploads/7bf7616ab81c66ca8036c560f9951e8f
--------------------------------------------------------------------------------
/uploads/95e7cd1145acafd5ca48ed316aa9ff5c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/uploads/95e7cd1145acafd5ca48ed316aa9ff5c
--------------------------------------------------------------------------------
/uploads/a2a31f14c5661127f623c77c78042915:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/uploads/a2a31f14c5661127f623c77c78042915
--------------------------------------------------------------------------------
/uploads/bab94413024d52a49e0b27f8256d225c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/uploads/bab94413024d52a49e0b27f8256d225c
--------------------------------------------------------------------------------
/uploads/c3e88daadeb1e1bc86a36125e08a0488:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/uploads/c3e88daadeb1e1bc86a36125e08a0488
--------------------------------------------------------------------------------
/uploads/db6a03d8824a8c0c7e9d5464c4fe60ab:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/uploads/db6a03d8824a8c0c7e9d5464c4fe60ab
--------------------------------------------------------------------------------
/uploads/faebe36a3564715048e4b36589b40560:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/markstock7/FileManager/50572778825dea6b6fdb34c9ae950d9915743e4c/uploads/faebe36a3564715048e4b36589b40560
--------------------------------------------------------------------------------
/views/error.jade:
--------------------------------------------------------------------------------
1 | extends layout
2 |
3 | block content
4 | h1= message
5 | h2= error.status
6 | pre #{error.stack}
7 |
--------------------------------------------------------------------------------
/views/index.jade:
--------------------------------------------------------------------------------
1 | extends layout
2 |
3 | block content
4 | h1= title
5 | p Welcome to #{title}
6 | #fileManager
7 |
8 |
--------------------------------------------------------------------------------
/views/layout.jade:
--------------------------------------------------------------------------------
1 | doctype html
2 | html
3 | head
4 | title= title
5 | meta(charset="UTF-8")
6 | link(rel='stylesheet', href='/jquery-ui/themes/base/jquery-ui.min.css')
7 | link(rel='stylesheet', href='/assets/fileManager/style/fileManager.css')
8 | link(rel='stylesheet', href='/assets/fileManager/style/style.css')
9 | link(rel='stylesheet', href="/stylesheets/style.css")
10 |
11 | body
12 | block content
13 | script(src="/jquery/dist/jquery.min.js")
14 | script(src="/jquery-ui/jquery-ui.min.js")
15 | script(src="/jsrender/jsrender.min.js")
16 | script(src="/underscore/underscore-min.js")
17 | script(src="/assets/fileManager/fileManager.js")
18 | script(src="/javascripts/main.js")
19 |
--------------------------------------------------------------------------------