Skip to content

Conversation

dphulkar-msft
Copy link
Member

@dphulkar-msft dphulkar-msft commented Jun 16, 2025

Description

SMB → NFS

  1. Symlinks (There will be no symlink for SMB share)
    --preserve-symlinks: N/A fail job
    --follow-symlinks: N/A fail the job
  2. Hardlinks (There will be no symlink for SMB share)
    --hardlinks: N/A fail the job
  3. Azure Files SMB will only contain normal files (no symlinks or hardlinks).
  4. If --preserve-info is set, preserve creationTime and lastModifiedTime.
  5. If --preserve-permissions is set, do not preserve — log error: "Preserving cross-platform permissions is not supported."

NFS → SMB

  1. Symlinks: Skip and log (no symlink api support for SMB).
  2. Hardlinks: Skip and log (no hardlink api support for SMB).
  3. For NFS → SMB transfers, --hardlinks must be set to skip. Hardlinked files will always be skipped during this transfer.
  4. If --preserve-info is set, preserve creationTime and lastModifiedTime.
  5. If --preserve-permissions is set, do not preserve — log error: "Preserving cross-platform permissions is not supported."
  • Feature / Bug Fix: (Brief description of the feature or issue being addressed)

  • Related Links:

  • Issues

  • Team thread

  • Documents

  • [Email Subject]

Type of Change

  • Bug fix
  • New feature
  • Documentation update required
  • Code quality improvement
  • Other (describe):

How Has This Been Tested?

Thank you for your contribution to AzCopy!

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR begins adapting the codebase to support transfers between Azure Files NFS and SMB by relaxing protocol checks and adding a guard in the traversal logic.

  • Added a nil-check around processStoredObject in the file traverser
  • Commented out the SMB protocol validation in flagsValidation.go
  • Commented out the NFS unsupported checks in copy.go

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
cmd/zc_traverser_file.go Added if s != nil guard before calling processStoredObject
cmd/flagsValidation.go Commented out the SMB-vs-NFS compatibility validation block
cmd/copy.go Commented out NFS unsupported-transfer checks in copy logic

@dphulkar-msft dphulkar-msft added the nfs-support Adding support for NFS in azcopy label Jun 19, 2025
@dphulkar-msft dphulkar-msft marked this pull request as ready for review August 4, 2025 11:47
@gapra-msft gapra-msft marked this pull request as draft August 7, 2025 16:06
@dphulkar-msft dphulkar-msft marked this pull request as ready for review August 14, 2025 07:06
@dphulkar-msft dphulkar-msft added this to the 10.31.0 milestone Aug 14, 2025
@dphulkar-msft dphulkar-msft merged commit 46ffafe into dphulkar/NFSOverRESTSupport Sep 10, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
nfs-support Adding support for NFS in azcopy pr-ready-for-review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants