Instrução
Os fluxos de trabalho recomendados e suportados para cópia de segurança de conteúdo no ArcGIS Online são exportar e baixar serviços da feição hospedados ou copiar serviços da feição hospedados para ArcGIS Enterprise através da Colaboração Distribuída. Este artigo apresenta uma amostra de código mostrando como exportar e baixar Serviços da Feição Hospedados no formato de arquivo geodatabase.
O armazenamento em nuvem do ArcGIS Online é seguro e confiável. No entanto, erros acontecem ou cópias de segurança periódicos podem ser um requisito de negócios. Portanto, muitas organizações sem ArcGIS Enterprise exportam e baixam serviços da feição hospedados regularmente para ter uma cópia de segurança. A desvantagem deste fluxo de trabalho é que a cópia de segurança manual dos serviços da feição hospedados por meio de exportação e download é demorado e trabalhoso.
Com a utilização do ArcGIS API for Python, é possível automatizar a exportação e download de serviços da feição hospedados como arquivos geodatabase para um local em uma unidade local. O exemplo de código abaixo mostra como executar isso em um Jupyter Notebook ou em um ambiente de script autônomo:
from arcgis.gis import GIS
import datetime as dt
username = input("Input your username: ")
gis = GIS("https://arcgis.com", username)
O retorno desse bloco de código solicita a inserção de uma senha. Após isto, procure por serviços da feição para baixar. Insira um valor alto para o parâmetro max_items para garantir que todos os Serviços da Feição sejam retornados na lista. Neste exemplo, a consulta pesquisa apenas os itens do usuário conectado. Conecte-se com privilégios administrativos e modifique a consulta para baixar serviços não compartilhados/não habilitados para exportação que outras pessoas na organização possuem. A célula abaixo também solicita um caminho de arquivo, que pode ser inserido regularmente, pois o Jupyter Notebook considera os caracteres de escape quando a cadeia de caracteres é usada como o local de saída na função de download.
Note: When using the Jupyter Notebook or a stand-alone script, a local folder location can be provided. However, ArcGIS Notebook on ArcGIS Online is not directly connected to the local folder on the machine. When running the script on ArcGIS Notebook, the following folder path must be provided: '/arcgis/home/<folder_name>' The folder path above can be accessed from the Files tab of ArcGIS Notebook.
folder_path = input("Please enter the file location to store the backups: ")
num_items = int(input("How many items do you want to back up? "))
query_string = "type:Feature Service, owner:{}".format(username)
items = gis.content.search(query=query_string, max_items=num_items, sort_field='modifed', sort_order='desc')
print(str(len(items)) + " items will be backed up to " + folder_path +". See the list below:")
items
Uma lista semelhante à seguinte é retornada:
[<Item title:"Title1" type:Feature Layer Collection owner:Username>, <Item title:"Title2" type:Feature Layer Collection owner:Username>, <Item title:"Title3" type:Feature Layer Collection owner:Username>, + about 100 more in my case...]
Por fim, criamos uma função que itera pela lista de Serviços da Feição (há lógica no script abaixo para evitar o download de visualizações da camada de feição hospedada, pois isso criaria cópias de segurança duplicadas), gera títulos FGDB, exporta e baixa cada Serviço da Feição como um FGDB e, finalmente, exclui os Itens FGDB do Meu Conteúdo no ArcGIS Online:
def download_as_fgdb(item_list, backup_location):
for item in item_list:
try:
if 'View Service' in item.typeKeywords:
print(item.title + " is view, not downloading")
else:
print("Downloading " + item.title)
version = dt.datetime.now().strftime("%d_%b_%Y")
result = item.export(item.title + "_" + version, "File Geodatabase")
result.download(save_path=backup_location)
result.delete()
print("Successfully downloaded " + item.title)
except:
print("An error occurred downloading " + item.title)
print("The function has completed")
download_as_fgdb(items, folder_path)
ID do Artigo: 000022524
Obtenha ajuda de especialistas do ArcGIS
Comece a conversar agora