PHPackages                             somasolucoes/cloudz - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. somasolucoes/cloudz

ActiveLibrary

somasolucoes/cloudz
===================

v1.0.0(2y ago)14[3 PRs](https://github.com/org-somasolucoes/cloudz/pulls)PHPCI failing

Since Aug 16Pushed 1w ago1 watchersCompare

[ Source](https://github.com/org-somasolucoes/cloudz)[ Packagist](https://packagist.org/packages/somasolucoes/cloudz)[ RSS](/packages/somasolucoes-cloudz/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (2)Versions (10)Used By (0)

CloudZ
======

[](#cloudz)

Bem-vindo ao CloudZ Library
---------------------------

[](#bem-vindo-ao-cloudz-library)

O CloudZ é uma biblioteca desenvolvida para facilitar a interação com serviços em nuvem de maneira genérica e intuitiva.

Estratégias do CloudZ
---------------------

[](#estratégias-do-cloudz)

- FTP
- SFTP
- AWS S3

Instruções de instalação
------------------------

[](#instruções-de-instalação)

A biblioteca CloudZ está disponível para uso no gerenciado de pacotes Composer, para utilizar a mesma, use o seguinte comando:

```
composer require somasolucoes/cloudz
```

Guia de Inicialização da Biblioteca CloudZ em PHP
-------------------------------------------------

[](#guia-de-inicialização-da-biblioteca-cloudz-em-php)

### Configuração Inicial

[](#configuração-inicial)

Antes de começar a utilizar a biblioteca CloudZ, é necessário criar arquivos JSON para fornecer informações de configuração para diferentes serviços de nuvem. Para isso, siga as etapas abaixo:

1. Crie uma pasta chamada `.cloudz` na raiz do seu projeto.
2. Dentro da pasta `.cloudz`, crie arquivos JSON separados para cada serviço de nuvem que você pretende utilizar, seguindo o padrão de nomenclatura a seguir:
    - `ftp.json`
    - `aws-s3.json`

#### Configuração para FTP/SFTP

[](#configuração-para-ftpsftp)

Crie um arquivo `ftp.json` dentro da pasta `.cloudz` com as informações necessárias para fazer login na conta de servço FTP ou SFTP. Utilize o seguinte formato JSON:

```
{
    "FTPAccount":
        {
            "code": 1,
            "host": "192.168.0.0",
            "port": 21/22,
            "user": "admin",
            "password": "123",
            "isPassive": "S/N",
            "dirWork": "/example",
            "urlAcess": "http://example",
            "useSSH": "S/N"
        }
}
```

#### Configuração para AWS-S3

[](#configuração-para-aws-s3)

Crie um arquivo `aws-s3.json` dentro da pasta `.cloudz` com as informações necessárias para autenticar na conta do Amazon S3. Utilize o seguinte formato JSON:

```
{
    "AWSS3Account":
    {
        "code": 1,
        "AWSKey": "B54CAB3F16A6CB378AEE5E1132B225F2",
        "AWSSecretKey": "5918933c23ef6c8ee8e3a96807654b3d",
        "AWSRegion": "us-east-1",
        "AWSType": "S3",
        "bucketName": "imagens/vídeos"
    }
}
```

Para suportar o upload de arquivos para várias contas, você pode criar uma lista de contas no arquivo JSON. Veja os exemplos abaixo:

#### Configuração para FTP/SFTP com Múltiplas Contas

[](#configuração-para-ftpsftp-com-múltiplas-contas)

Crie um arquivo `ftp.json` na pasta `.cloudz` e configure mútiplas contas usando uma matriz JSON:

```
{
    "FTPAccount": [
        {
            "code": 1,
            "host": "192.168.0.0",
            ...
        },
        {
            "code": 2,
            "host": "192.168.0.1",
            ...
        }
    ]
}
```

#### Configuração para AWS-S3 com Múltiplas Contas

[](#configuração-para-aws-s3-com-múltiplas-contas)

Crie um arquivo `aws-s3.json` na pasta `.cloudz` e configure mútiplas contas usando uma matriz JSON:

```
{
    "AWSS3Account": [
    {
        "code": 1,
        "AWSKey": "B54CAB3F16A6CB378AEE5E1132B225F2",
        ...
    },{
        "code": 2,
        "AWSKey": "B54CAB3F16A6CB378AEE5E1132B225F2",
        ...
    }]
}
```

### Iniciando utilização

[](#iniciando-utilização)

Após as configurações prévias, para iniciar a utilização da CloudZ, você precisará instanciar a classes: CloudService. Ela requer dois parâmetros.

1. Tipo de serviço em nuvem que você está conectando;
2. Código de referência da conta de serviço em nuvem que você deseja acessar (Esse código irá identificar uma conta configurada em um arquivo JSON dentro do diretório `.cloudz`).

```
$cloudServiceType = 'tipo_servico';
$cloudServiceAccountCode = 1;
$cloudService = new CloudService($cloudServiceType, $cloudServiceAccountCode);
```

Segue lista dos tipos de serviços disponíveis:

- 'FTP'
- 'AWS-S3'

Exemplo:

```
$cloudServiceType = 'FTP';
$cloudServiceAccountCode = 1;
$cloudService = new CloudService($cloudServiceType, $cloudServiceAccountCode);
```

Mas pode ser usado também, constantes dos tipos de serviços disponibilizado pela biblioteca. Segue lista de constantes dos tipos de serviços:

- FTP\_ACCOUNT
- AWS\_S3\_ACCOUNT

Exemplo:

```
$cloudServiceType = CloudServiceTypes::FTP_ACCOUNT;
$cloudServiceAccountCode = 1;
$cloudService = new CloudService($cloudServiceType, $cloudServiceAccountCode);
```

Ao fornecer esses parâmetros, você poderá iniciar o uso da biblioteca e interagir com diferentes serviços em nuvem usando uma única estrutura.

Configuração
------------

[](#configuração)

Para adicionar uma configuração, basta usar o seguinte comando:

```
$cloudServiceType = 'tipo_servico';
$cloudServiceAccountCode = 1;
$cloudService = new CloudService($cloudServiceType, $cloudServiceAccountCode);
$cloudService->settings->add('key example', value example);
```

A classe CloudService permite algumas configurações opcionais:

- canEncryptName: Permite que o nome do arquivo seja criptografado durante o envio (valor booleano true/false);
- canDeleteAfterUpload: Permite que o arquivo salvo localmente seja excluído após o upload (valor booleano true/false);
- path: Permite criar ou acessar um diretório específico na nuvem (valor string).

> Se você deseja manter a organização na nuvem seguindo um padrão, a biblioteca CloudZ fornece "utilitys" de diretório. Essa utilidade oferece um padrão focado em soluções de projeto, que pode ser utilizado passando como parâmetro três strings: a raiz, o nome da solução e o nome do módulo. Para integrações de projetos externos, a "utility" de diretório necessita apenas de duas strings como parâmetro: a raiz e o nome da integração. Essa "utility" pode ser acessada de forma estática, facilitando a sua utilização no seu projeto.

Exemplo:

```
$mountSolutionPath = CloudServicePathUtility::mountSolutionPath('root', 'solutionName', 'module');
//Resultado de CloudServicePathUtility::mountSolutionPath: 'root/solucoes/solutionName/module'
$mountIntegrationPath = CloudServicePathUtility::mountIntegrationPath('root', 'integrationName');
//Resultado de CloudServicePathUtility::mountIntegrationPath: 'root/integracoes/integrationName'

$cloudServiceType = 'tipo_servico';
$cloudServiceAccountCode = 1;
$cloudService = new CloudService($cloudServiceType, $cloudServiceAccountCode);
$cloudService->settings->add('path', $mountSolutionPath);
```

> Com essa funcionalidade, você pode manter uma estrutura organizada em diferentes serviços em nuvem, tornando mais fácil a localização dos seus arquivos e projetos.

Preparação do arquivo
---------------------

[](#preparação-do-arquivo)

Antes de realizar operações como Upload ou Delete, é necessário preparar o arquivo a ser enviado. Para isso, é preciso instanciar a classe CloudServiceFile, passando como parâmetro o caminho local do arquivo desejado.

```
$filePath = 'C:\Documents\example.txt'
$file = new CloudServiceFile($filePath);
```

Upload
------

[](#upload)

Para realizar a ação de upload, basta utilizar o método "upload" da instância da CloudService, passando como parâmetro o arquivo preparado previamente pela classe CloudServiceFile.

```
$cloudServiceType = 'tipo_servico';
$cloudServiceAccountCode = 1;
$cloudService = new CloudService($cloudServiceType, $cloudServiceAccountCode);

$filePath = 'C:\Documents\example.txt'
$file = new CloudServiceFile($filePath);

$cloudService->upload($file);
```

> Ao utilizar o método upload, a biblioteca retorna um objeto de resposta que contém informações relevantes para o usuário. Em caso de sucesso, o código 200 é retornado junto com uma URL que permite acessar o arquivo enviado. Em caso de erro, o código 400 é retornado junto com uma mensagem que explica o motivo do erro ocorrido.

Delete
------

[](#delete)

Para realizar a ação de delete, basta utilizar o método "delete" da instancia da CloudService, passando como parâmetro o arquivo preparado previamente pela classe CloudServiceFile.

```
$cloudServiceType = 'tipo_servico';
$cloudServiceAccountCode = 1;
$cloudService = new CloudService($cloudServiceType, $cloudServiceAccountCode);

$filePath = 'C:\Documents\example.txt'
$file = new CloudServiceFile($filePath);

$cloudService->delete($file);
```

> Ao utilizar o método delete, a biblioteca retorna um objeto de resposta que contém informações relevantes para o usuário. Em caso de sucesso, o código 200 é retornado junto com uma mensagem de sucesso. Em caso de erro, o código 400 é retornado junto com uma mensagem que explica o motivo do erro ocorrido.

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance64

Regular maintenance activity

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1051d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/22527113?v=4)[Soma Soluções em T.I.](/maintainers/somasolucoes)[@somasolucoes](https://github.com/somasolucoes)

---

Top Contributors

[![Caio-SOMA](https://avatars.githubusercontent.com/u/120721616?v=4)](https://github.com/Caio-SOMA "Caio-SOMA (8 commits)")

### Embed Badge

![Health badge](/badges/somasolucoes-cloudz/health.svg)

```
[![Health](https://phpackages.com/badges/somasolucoes-cloudz/health.svg)](https://phpackages.com/packages/somasolucoes-cloudz)
```

###  Alternatives

[leantime/leantime

Open source project management system for non-project managers. Simple like Trello, powerful like Jira. Built with neurodiversity in mind.

10.2k3.5k](/packages/leantime-leantime)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751291.4k43](/packages/civicrm-civicrm-core)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M574](/packages/shopware-core)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45444.2k1](/packages/pressbooks-pressbooks)[ellaisys/aws-cognito

Laravel Authentication using AWS Cognito (Web and API)

123256.9k1](/packages/ellaisys-aws-cognito)[n1ebieski/ksef-php-client

PHP API client that allows you to interact with the API Krajowego Systemu e-Faktur

9067.8k](/packages/n1ebieski-ksef-php-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
