如何将文件从s3服务下载到本地文件夹

时间:2015-12-30 15:19:10

标签: powershell amazon-web-services amazon-s3 aws-powershell

我要求将文件从简单存储服务下载到本地文件夹 并计算本地文件夹中的no.of文件并检查简单存储服务,然后发送包含文件数的邮件。

我尝试从简单的存储服务下载文件,但收到的错误如<script> var map = L.map('map', {zoomControl:true, maxZoom:20, minZoom:15}); /* I need te following lines inside the parent file. */ var lat = -0.017; var lng = 0.015; var zoom = 16; map.setView([lat, lng], zoom); </script> 。我该如何解决这个问题?

Code reference I have taken

get-s3object commandnotfoundexception

3 个答案:

答案 0 :(得分:6)

由于此问题是“ powershell下载s3文件”的Google最高搜索结果之一,因此我将在标题中回答该问题(即使实际问题文本不同):

Read-S3Object -BucketName "my-s3-bucket" -KeyPrefix "path/to/directory" -Folder .

如果它不是公共存储桶,则可能需要致电Set-AWSCredentials

答案 1 :(得分:2)

如果您已安装AWS PowerShell模块,则表示尚未将其正确加载到当前会话中。我们将此视为问题,因为您指定的错误意味着无法找到给定的cmdlet。

首先通过以下任何选项验证模块是否已安装:

将模块加载到现有会话中:(PowerShell v3和v4):

来自文档:

  

在PowerShell 4.0及更高版本中,Import-Module还会在Program Files文件夹中搜索已安装的模块,因此无需提供模块的完整路径。您可以运行以下命令来导入AWSPowerShell模块。在PowerShell 3.0及更高版本中,在模块中运行cmdlet还会自动将模块导入到会话中。

要验证安装是否正确,请将以下命令添加到脚本的开头:

public interface IContext
{
    DbSet<Client> Clients { get; set; }
    DbSet<TEntity> Set<TEntity>() where TEntity : class;

    DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class;

    int SaveChanges();
}

将模块加载到现有会话中:(PowerShell v2):

要验证安装是否正确,请将以下命令添加到脚本的开头:

PS C:\> Import-Module AWSPowerShell

使用Windows PowerShell for AWS桌面快捷方式打开一个新会话:

桌面上添加了一个快捷方式,可以使用加载到会话中的正确模块启动PowerShell。如果您的安装成功,则应该存在此快捷方式,并且还应该正确加载AWS PowerShell模块,而无需您的额外努力。

来自文档:

  

安装程序会创建一个名为Amazon Web Services的“开始”菜单组,   其中包含一个名为Windows PowerShell for AWS的快捷方式。对于   PowerShell 2.0,这个快捷方式自动导入AWSPowerShell   模块然后运行Initialize-AWSDefaults cmdlet。对于PowerShell   3.0,每当您运行AWS cmdlet时,AWSPowerShell模块都会自动加载。因此,对于PowerShell 3.0,由。创建的快捷方式   安装程序仅运行Initialize-AWSDefaults cmdlet。更多   有关Initialize-AWSDefaults的信息,请参阅使用AWS凭据。

进一步阅读:

答案 2 :(得分:1)

类似于Will的示例,如果要下载保留目录结构的“文件夹”的全部内容,请尝试:

Get-S3Object -BucketName "my-bucket" -KeyPrefix "path/to/directory" | Read-S3Object -Folder .

https://docs.aws.amazon.com/powershell/latest/reference/items/Read-S3Object.html的MS doc提供了更高级的过滤示例。